------- 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