http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51174
--- Comment #5 from David Edelsohn <dje at gcc dot gnu.org> 2011-11-16 18:30:29
UTC ---
The rs6000.c failure looks like rs6000_xcoff_section_type_flags() should deal
with decl == NULL.
But the other similar failure is in trans-mem.c:
(gdb) where
#0 internal_error (
gmsgid=0x10bcf1dc "tree check: %s, have %s in %s, at %s:%d")
at /farm/dje/src/src/gcc/diagnostic.c:844
#1 0x10131540 in tree_check_failed (node=0x0,
file=0x10c68e50 "/farm/dje/src/src/gcc/trans-mem.c", line=4107,
function=0x10c68ec8 "tm_mangle") at /farm/dje/src/src/gcc/tree.c:8815
#2 0x10881f00 in tm_mangle (old_asm_id=0x0)
at /farm/dje/src/src/gcc/trans-mem.c:4107
#3 0x1088ca48 in ipa_tm_execute () at /farm/dje/src/src/gcc/trans-mem.c:8862
#4 0x1019f6e8 in execute_one_pass (pass=0x300f7d7c)
at /farm/dje/src/src/gcc/passes.c:2074
#5 0x101a0104 in execute_ipa_pass_list (pass=0x300f7d7c)
at /farm/dje/src/src/gcc/passes.c:2441
#6 0x1048eb38 in cgraph_optimize () at /farm/dje/src/src/gcc/cgraphunit.c:4155
#7 0x1048f2a8 in cgraph_finalize_compilation_unit ()
at /farm/dje/src/src/gcc/cgraphunit.c:1327
#8 0x109453b8 in cp_write_global_declarations ()
at /farm/dje/src/src/gcc/cp/decl2.c:4050
#9 0x100031a8 in toplev_main (argc=4, argv=0x2ff22268)
at /farm/dje/src/src/gcc/toplev.c:581
#10 0x100003a0 in main (argc=280818140, argv=0x2ff21d90)
at /farm/dje/src/src/gcc/main.c:36
DECL_COMDAT_GROUP (new_decl) = tm_mangle (DECL_COMDAT_GROUP (old_decl));
(gdb) print old_decl
$3 = 0x700d6000
(gdb) pt
<function_decl 700d6000 __comp_dtor
type <method_type 700d4e40
type <void_type 70014780 void VOID
align 8 symtab 0 alias set -1 canonical type 70014780
pointer_to_this <pointer_type 700147e0>>
SI
size <integer_cst 70005620 constant 32>
unit size <integer_cst 70005640 constant 4>
align 32 symtab 0 alias set -1 canonical type 700d4d20
attributes <tree_list 700d2660
purpose <identifier_node 700bf2d8 transaction_safe
bindings <0>
local bindings <0>>> method basetype <record_type 700d4b40
shared_count>
arg-types <tree_list 700d2648 value <pointer_type 700d4d80>
chain <tree_list 70013d80 value <void_type 70014780 void>>>
pointer_to_this <pointer_type 700da6c0>>
addressable used public static weak autoinline decl_5 SI defer-output file
/farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C line 53 col 5 align 32
context <record_type 700d4b40 shared_count> initial <block 7001acc0>
abstract_origin <function_decl 700c6f00 shared_count>
arguments <parm_decl 700d03c8 this
type <pointer_type 700d4de0 type <record_type 700d4b40 shared_count>
readonly unsigned SI size <integer_cst 70005620 32> unit size
<integer_cst 70005640 4>
align 32 symtab 0 alias set -1 canonical type 700d4de0>
readonly used unsigned SI file
/farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C line 53 col 19 size
<integer_cst 70005620 32> unit size <integer_cst 70005640 4>
align 32 context <function_decl 700d6000 __comp_dtor > abstract_origin
<parm_decl 700d0268 this> arg-type <pointer_type 700d4de0>>
result <result_decl 700c2910 D.2008 type <void_type 70014780 void>
ignored VOID file /farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C
line 56 col 5
align 8 context <function_decl 700d6000 __comp_dtor >>
full-name "shared_count::~shared_count()"
pending-inline-info 700d7b00
struct-function 700da2a0>
(gdb) print new_decl
$4 = 0x700e5480
(gdb) pt
<function_decl 700e5480 __comp_dtor
type <method_type 700d4e40
type <void_type 70014780 void VOID
align 8 symtab 0 alias set -1 canonical type 70014780
pointer_to_this <pointer_type 700147e0>>
SI
size <integer_cst 70005620 constant 32>
unit size <integer_cst 70005640 constant 4>
align 32 symtab 0 alias set -1 canonical type 700d4d20
attributes <tree_list 700d2660
purpose <identifier_node 700bf2d8 transaction_safe
bindings <0>
local bindings <0>>> method basetype <record_type 700d4b40
shared_count>
arg-types <tree_list 700d2648 value <pointer_type 700d4d80>
chain <tree_list 70013d80 value <void_type 70014780 void>>>
pointer_to_this <pointer_type 700da6c0>>
addressable used public static weak autoinline decl_5 SI defer-output file
/farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C line 53 col 5 align 32
context <record_type 700d4b40 shared_count> initial <block 7001acc0>
abstract_origin <function_decl 700c6f00 shared_count>
arguments <parm_decl 700d03c8 this
type <pointer_type 700d4de0 type <record_type 700d4b40 shared_count>
readonly unsigned SI size <integer_cst 70005620 32> unit size
<integer_cst 70005640 4>
align 32 symtab 0 alias set -1 canonical type 700d4de0>
readonly used unsigned SI file
/farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C line 53 col 19 size
<integer_cst 70005620 32> unit size <integer_cst 70005640 4>
align 32 context <function_decl 700d6000 __comp_dtor > abstract_origin
<parm_decl 700d0268 this> arg-type <pointer_type 700d4de0>>
result <result_decl 700c2910 D.2008 type <void_type 70014780 void>
ignored VOID file /farm/dje/src/src/gcc/testsuite/g++.dg/tm/pr45940-3.C
line 56 col 5
align 8 context <function_decl 700d6000 __comp_dtor >>
full-name "shared_count::~shared_count()"
pending-inline-info 700d7b00
struct-function 700da2a0>