https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78188
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Same w/o -g. #2 0x00000000014f17a3 in rs6000_xcoff_declare_object_name (file=0x25634c0, name=0x2aaaacd771b0 "*LDFCM..0", decl=<var_decl 0x2aaaaffe7f30 *LDFCM..0>) at /space/rguenther/src/gcc-git/gcc/config/rs6000/rs6000.c:35418 35418 &data, true); (gdb) l 35413 { 35414 struct declare_alias_data data = {file, false}; 35415 RS6000_OUTPUT_BASENAME (file, name); 35416 fputs (":\n", file); 35417 symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias, 35418 &data, true); 35419 } symtab_node::get (decl) returns NULL. (gdb) p debug_tree (decl) <var_decl 0x2aaaaffe7f30 *LDFCM..0 type <pointer_type 0x2aaaac0462a0 type <void_type 0x2aaaac046150 void type_6 VOID align 8 symtab 0 alias set -1 canonical type 0x2aaaac046150 pointer_to_this <pointer_type 0x2aaaac0462a0>> sizes-gimplified public unsigned type_6 SI size <integer_cst 0x2aaaac0334c8 constant 32> unit size <integer_cst 0x2aaaac0334e0 constant 4> align 32 symtab 0 alias set 105 canonical type 0x2aaaac0462a0 pointer_to_this <pointer_type 0x2aaaac04f0a8> reference_to_this <reference_type 0x2aaaacaa8f18>> readonly asm_written static unsigned ignored SI file (null) line 0 col 0 size <integer_cst 0x2aaaac0334c8 32> unit size <integer_cst 0x2aaaac0334e0 4> align 32 initial <var_decl 0x2aaaaffe7f30 *LDFCM..0> (mem/u/f/c:SI (symbol_ref:SI ("*LDFCM..0") [flags 0x2] <var_decl 0x2aaaaffe7f30 *LDFCM..0>) [105 *LDFCM..0+0 S4 A32])> diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 49985f1..72e0f0c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -35414,7 +35414,7 @@ rs6000_xcoff_declare_object_name (FILE *file, const char *name, tree decl) struct declare_alias_data data = {file, false}; RS6000_OUTPUT_BASENAME (file, name); fputs (":\n", file); - symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias, + symtab_node::get_create (decl)->call_for_symbol_and_aliases (rs6000_declare_alias, &data, true); } fixes this ICE. But then compilation goes through w/o hitting the section type conflict.