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

--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> 2011-06-17 
15:53:39 UTC ---
We die on this assert:

  gcc_assert (cgraph_function_or_thunk_node (node, NULL) == node);

Here's a couple of dumps of the two decls if that helps.

(gdb) frame 1

(gdb) ptree node->decl
 <function_decl 0xfffb6f7ca00 __comp_dtor 
    type <method_type 0xfffb6fe9108
        type <void_type 0xfffb6e40d20 void asm_written type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0xfffb6e40d20
            pointer_to_this <pointer_type 0xfffb6e40dc8>>
        SI
        size <integer_cst 0xfffb6d52420 constant 32>
        unit size <integer_cst 0xfffb6d52440 constant 4>
        align 32 symtab 0 alias set -1 canonical type 0xfffb6fe9108 method
basetype <record_type 0xfffb6fe8c70 __array_type_info>
        arg-types <tree_list 0xfffb6f8b2e8 value <pointer_type 0xfffb6fe8f10>
            chain <tree_list 0xfffb6dd07f8 value <void_type 0xfffb6e40d20
void>>>
        pointer_to_this <pointer_type 0xfffb6fe94f8>>
    addressable used public static decl_5 SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 29 col 1 align 32 context <record_type 0xfffb6fe8c70 __array_type_info>
initial <block 0xfffb6e84150> abstract_origin <function_decl 0xfffb6f7c600
__array_type_info>
    arguments <parm_decl 0xfffb6e17d60 this
        type <pointer_type 0xfffb6fe8fb8 type <record_type 0xfffb6fe8c70
__array_type_info>
            readonly unsigned SI size <integer_cst 0xfffb6d52420 32> unit size
<integer_cst 0xfffb6d52440 4>
            align 32 symtab 4095 alias set -1 canonical type 0xfffb6fe8fb8>
        readonly used unsigned SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 30 col 21 size <integer_cst 0xfffb6d52420 32> unit size <integer_cst
0xfffb6d52440 4>
        align 32 context <function_decl 0xfffb6f7ca00 __comp_dtor >
abstract_origin <parm_decl 0xfffb7024620 this> arg-type <pointer_type
0xfffb6fe8fb8>>
    result <result_decl 0xfffb6d82800 D.2747 type <void_type 0xfffb6e40d20
void>
        ignored VOID file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 31 col 2
        align 8 context <function_decl 0xfffb6f7ca00 __comp_dtor >>
    full-name "__cxxabiv1::__array_type_info::~__array_type_info()"
    pending-inline-info 0xfffb6d25c50
    (mem:SI (symbol_ref:SI ("_ZN10__cxxabiv117__array_type_infoD1Ev") [flags
0x1] <function_decl 0xfffb6f7ca00 __comp_dtor >) [0 S4 A32])
    struct-function 0xfffb6e08890 chain <function_decl 0xfffb6f7c900
__deleting_dtor >>

(gdb) p cgraph_function_or_thunk_node (node, NULL)
$9 = (struct cgraph_node *) 0xfffb6fb9000

(gdb) ptree $9->decl
 <function_decl 0xfffb6f7cb00 __base_dtor 
    type <method_type 0xfffb6fe9108
        type <void_type 0xfffb6e40d20 void asm_written type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0xfffb6e40d20
            pointer_to_this <pointer_type 0xfffb6e40dc8>>
        SI
        size <integer_cst 0xfffb6d52420 constant 32>
        unit size <integer_cst 0xfffb6d52440 constant 4>
        align 32 symtab 0 alias set -1 canonical type 0xfffb6fe9108 method
basetype <record_type 0xfffb6fe8c70 __array_type_info>
        arg-types <tree_list 0xfffb6f8b2e8 value <pointer_type 0xfffb6fe8f10>
            chain <tree_list 0xfffb6dd07f8 value <void_type 0xfffb6e40d20
void>>>
        pointer_to_this <pointer_type 0xfffb6fe94f8>>
    asm_written public static decl_5 SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 29 col 1 align 32 context <record_type 0xfffb6fe8c70 __array_type_info>
initial <error_mark 0xfffb6de1d58> abstract_origin <function_decl 0xfffb6f7c600
__array_type_info>
    arguments <parm_decl 0xfffb6e17ef8 this
        type <pointer_type 0xfffb6fe8fb8 type <record_type 0xfffb6fe8c70
__array_type_info>
            readonly unsigned SI size <integer_cst 0xfffb6d52420 32> unit size
<integer_cst 0xfffb6d52440 4>
            align 32 symtab 4095 alias set -1 canonical type 0xfffb6fe8fb8>
        readonly used unsigned SI file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 30 col 21 size <integer_cst 0xfffb6d52420 32> unit size <integer_cst
0xfffb6d52440 4>
        align 32 context <function_decl 0xfffb6f7cb00 __base_dtor >
abstract_origin <parm_decl 0xfffb7024620 this>
        (mem/f/c/i:SI (plus:SI (reg/f:SI 113 sfp)
        (const_int 8 [0x8])) [0 this+0 S4 A32]) arg-type <pointer_type
0xfffb6fe8fb8>
        incoming-rtl (reg:SI 3 3 [ this ])>
    result <result_decl 0xfffb6d82680 D.2744 type <void_type 0xfffb6e40d20
void>
        ignored VOID file
/home/bergner/gcc/gcc-mainline-20110614/libstdc++-v3/libsupc++/array_type_info.cc
line 31 col 2
        align 8 context <function_decl 0xfffb6f7cb00 __base_dtor >>
    full-name "__cxxabiv1::__array_type_info::~__array_type_info()"
    pending-inline-info 0xfffb6d25b70
    (mem:SI (symbol_ref:SI ("_ZN10__cxxabiv117__array_type_infoD2Ev") [flags
0x1] <function_decl 0xfffb6f7cb00 __base_dtor >) [0 S4 A32]) chain
<function_decl 0xfffb6f7ca00 __comp_dtor >>

Reply via email to