[Bug bootstrap/78188] [7 Regression] AIX Bootstrap broken by tree-vrp.c change

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 3 11:56:00 GMT 2016


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.


More information about the Gcc-bugs mailing list