------- Comment #2 from rguenth at gcc dot gnu dot org  2010-07-27 09:17 -------
Trying to reduce ... it happens only with whopr.

Program received signal SIGSEGV, Segmentation fault.
0x00000000005d33ba in prune_unused_types_mark (die=0x0, dokids=1)
    at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:21729
21729     if (die->die_mark == 0)

#1  0x00000000005d3349 in prune_unused_types_walk_attribs (die=0x7ffff5a12d68)
    at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:21711
21711               prune_unused_types_mark (a->dw_attr_val.v.val_die_ref.die,
1);
(gdb) p a->dw_attr_val.v.val_die_ref
$1 = {die = 0x0, external = 0}

so we created a dw_val_class_die_ref attr with a null DIE.  Which we do
here:

#1  0x00000000005c9c14 in add_pure_or_virtual_attribute (die=0x7ffff5a12d68, 
    func_decl=0x7ffff55cd300)
    at /space/rguenther/src/svn/trunk/gcc/dwarf2out.c:17409
17407         if (debug_info_level > DINFO_LEVEL_TERSE
17408             && DECL_CONTEXT (func_decl))
17409           add_AT_die_ref (die, DW_AT_containing_type,
17410                           lookup_type_die (DECL_CONTEXT (func_decl)));

where DECL_CONTEXT is a RECORD_TYPE.

Supposedly the type is unused and thus doesn't get output.

Note that we're arriving here via

#5  0x0000000000c74a47 in expand_call_inline (bb=0x7ffff54782d8, 
    stmt=0x7ffff52c89b0, id=0x7fffffffd970)
    at /space/rguenther/src/svn/trunk/gcc/tree-inline.c:4024
4024      (*debug_hooks->outlining_inline_function) (cg_edge->callee->decl);


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-07-27 09:17:50
               date|                            |


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

Reply via email to