projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Test case for historical reasons
[libfirm]
/
ir
/
be
/
begnuas.c
diff --git
a/ir/be/begnuas.c
b/ir/be/begnuas.c
index
258b37f
..
8cc6ec5
100644
(file)
--- 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;
}
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();
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");
}
} 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:
dump_compound_init(env, ent);
break;
default:
-
assert(0
);
+
panic("Unimplemented type kind in dump_global()"
);
}
}
}
}
}
}