/test/gnu/gcc/objdir/./gcc/xgcc -B/test/gnu/gcc/objdir/./gcc/
-B/opt/gnu/gcc/gcc
-4.3.0/hppa2.0w-hp-hpux11.11/bin/
-B/opt/gnu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11
/lib/ -isystem /opt/gnu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11/include -isystem
/op
t/gnu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11/sys-include -DHAVE_CONFIG_H -I.
-I../.
./../gcc/libssp -I. -Wall -O2 -g -O2 -MT ssp.lo -MD -MP -MF .deps/ssp.Tpo -c
../
../../gcc/libssp/ssp.c  -fPIC -DPIC -o .libs/ssp.o
../../../gcc/libssp/ssp.c: In function '__stack_chk_fail_local':
../../../gcc/libssp/ssp.c:177: warning: visibility attribute not supported in
th
is configuration; ignored
../../../gcc/libssp/ssp.c: At top level:
../../../gcc/libssp/ssp.c:177: internal compiler error: in
cgraph_expand_functio
n, at cgraphunit.c:973

(gdb) p *node
$4 = {decl = 0x7ae99ee0, callees = 0x0, callers = 0x0, next = 0x7ade8a80,
  previous = 0x7aeb4400, origin = 0x0, nested = 0x0, next_nested = 0x0,
  next_needed = 0x0, next_clone = 0x0, prev_clone = 0x0,
  master_clone = 0x7ade8b00, call_site_hash = 0x0, aux = 0x0, local = {
    estimated_self_stack_size = 0, self_insns = 0, local = 0,
    externally_visible = 1, finalized = 1, inlinable = 0,
    disregard_inline_limits = 0, redefined_extern_inline = 0,
    for_functions_valid = 0, vtable_method = 0}, global = {
    estimated_stack_size = 0, stack_frame_offset = 0, inlined_to = 0x0,
    insns = 0, estimated_growth = -2147483648, inlined = 0 '\0'}, rtl = {
    preferred_incoming_stack_boundary = 0}, count = 0, uid = 15, order = 18,
  needed = 1, reachable = 1, lowered = 0, analyzed = 0, output = 0, alias = 0,
  inline_decl = 0x0}
(gdb) bt
#0  cgraph_expand_function (node=0x7ade8b00) at ../../gcc/gcc/cgraphunit.c:973
#1  0x002c32cc in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1040
#2  0x0004316c in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:7969
#3  0x00258f9c in toplev_main (argc=1073925056, argv=0x1)
    at ../../gcc/gcc/toplev.c:1040
#4  0x000b5274 in main (argc=2061404928, argv=0x7eff0a98)
    at ../../gcc/gcc/main.c:35
(gdb) p debug_tree (decl)
 <function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81
    type <function_type 7adf8840
        type <void_type 7adef900 void VOID
            align 8 symtab 15 alias set -1 canonical type 7adef900
            pointer_to_this <pointer_type 7adef960>>
        SI
        size <integer_cst 7ade12d0 constant invariant 32>
        unit size <integer_cst 7ade1060 constant invariant 4>
        align 32 symtab 0 alias set -1 structural equality
        arg-types <tree_list 7ade1c78 value <void_type 7adef900 void>>
        pointer_to_this <pointer_type 7ae91780>>
    used public static ignored SI file ../../../gcc/libssp/ssp.c line 177
initial <block 7aeb0ab8>
    result <result_decl 7ae9beb0 D.2202 type <void_type 7adef900 void>
        ignored VOID file ../../../gcc/libssp/ssp.c line 177
        align 8>
    (mem:SI (symbol_ref/v:SI
("@_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81") [flags 0x1]
<function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81>) [0 S4 A32])
    saved-insns 7ae4aaa8>
$5 = void
(gdb)
 <function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81
    type <function_type 7adf8840
        type <void_type 7adef900 void VOID
            align 8 symtab 15 alias set -1 canonical type 7adef900
            pointer_to_this <pointer_type 7adef960>>
        SI
        size <integer_cst 7ade12d0 constant invariant 32>
        unit size <integer_cst 7ade1060 constant invariant 4>
        align 32 symtab 0 alias set -1 structural equality
        arg-types <tree_list 7ade1c78 value <void_type 7adef900 void>>
        pointer_to_this <pointer_type 7ae91780>>
    used public static ignored SI file ../../../gcc/libssp/ssp.c line 177
initial <block 7aeb0ab8>
    result <result_decl 7ae9beb0 D.2202 type <void_type 7adef900 void>
        ignored VOID file ../../../gcc/libssp/ssp.c line 177
        align 8>
    (mem:SI (symbol_ref/v:SI
("@_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81") [flags 0x1]
<function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81>) [0 S4 A32])
    saved-insns 7ae4aaa8>
$6 = void
(gdb)
 <function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81
    type <function_type 7adf8840
        type <void_type 7adef900 void VOID
            align 8 symtab 15 alias set -1 canonical type 7adef900
            pointer_to_this <pointer_type 7adef960>>
        SI
        size <integer_cst 7ade12d0 constant invariant 32>
        unit size <integer_cst 7ade1060 constant invariant 4>
        align 32 symtab 0 alias set -1 structural equality
        arg-types <tree_list 7ade1c78 value <void_type 7adef900 void>>
        pointer_to_this <pointer_type 7ae91780>>
    used public static ignored SI file ../../../gcc/libssp/ssp.c line 177
initial <block 7aeb0ab8>
    result <result_decl 7ae9beb0 D.2202 type <void_type 7adef900 void>
        ignored VOID file ../../../gcc/libssp/ssp.c line 177
        align 8>
    (mem:SI (symbol_ref/v:SI
("@_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81") [flags 0x1]
<function_decl 7ae99ee0
_GLOBAL__I_0_.._.._.._gcc_libssp_ssp.c_D6517926_7BD28B81>) [0 S4 A32])
    saved-insns 7ae4aaa8>

This bug was seen in revision 120529M.  The source contains a modification
to notice_global_symbol:

Index: varasm.c
===================================================================
--- varasm.c    (revision 120529)
+++ varasm.c    (working copy)
@@ -1306,6 +1306,7 @@
 void
 notice_global_symbol (tree decl)
 {
+  static bool shlib_global_object_flag = false;
   const char **type = &first_global_object_name;

   if (first_global_object_name
@@ -1320,11 +1321,25 @@
       || !MEM_P (DECL_RTL (decl)))
     return;

-  /* We win when global object is found, but it is useful to know about weak
-     symbol as well so we can produce nicer unique names.  */
+  /* We win when a global object is found that can't be overridden, but
+     it is useful to know about other global objects so we can produce
+     nicer unique names.  */
   if (DECL_WEAK (decl) || DECL_ONE_ONLY (decl))
-    type = &weak_global_object_name;
+    {
+      if (weak_global_object_name)
+       return;

+      type = &weak_global_object_name;
+    }
+  else if (flag_shlib)
+    {
+      if (shlib_global_object_flag)
+       return;
+
+      shlib_global_object_flag = true;
+      type = &weak_global_object_name;
+    }
+
   if (!*type)
     {
       const char *p;


-- 
           Summary: libssp/ssp.c:177: ICE: in cgraph_expand_function, at
                    cgraphunit.c:973
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30403

Reply via email to