X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbegnuas.c;h=8cc6ec5cdcb196d2a9ff7864a748f8101c388ebf;hb=952e0be71291f6475cb4c86894e43dc531eb8980;hp=258b37f486cff9b388d5691f8f67e8ace53de303;hpb=592d1847c8bb5d20f5d1cd034b22fd3a67eedfa4;p=libfirm diff --git a/ir/be/begnuas.c b/ir/be/begnuas.c index 258b37f48..8cc6ec5cd 100644 --- a/ir/be/begnuas.c +++ b/ir/be/begnuas.c @@ -1220,14 +1220,21 @@ static void dump_global(be_gas_decl_env_t *env, ir_entity *ent) be_emit_write_line(); break; } - } else if (section == GAS_SECTION_PIC_TRAMPOLINES) { + } else if (section == GAS_SECTION_PIC_TRAMPOLINES + || section == GAS_SECTION_PIC_SYMBOLS) { if (be_gas_flavour == GAS_FLAVOUR_MACH_O) { be_emit_cstring("\t.indirect_symbol "); be_emit_ident(get_entity_ident(ent)); be_emit_char('\n'); be_emit_write_line(); - be_emit_cstring("\thlt ; hlt ; hlt ; hlt ; hlt\n"); - be_emit_write_line(); + if (section == GAS_SECTION_PIC_TRAMPOLINES) { + be_emit_cstring("\thlt ; hlt ; hlt ; hlt ; hlt\n"); + be_emit_write_line(); + } else { + assert(section == GAS_SECTION_PIC_SYMBOLS); + be_emit_cstring("\t.long 0\n"); + be_emit_write_line(); + } } else { panic("PIC trampolines not yet supported in this gas mode"); } @@ -1254,7 +1261,7 @@ static void dump_global(be_gas_decl_env_t *env, ir_entity *ent) dump_compound_init(env, ent); break; default: - assert(0); + panic("Unimplemented type kind in dump_global()"); } } }