------- Comment #7 from davek at gcc dot gnu dot org 2009-09-19 10:44 ------- Was off-by-one on the rtx, it's actually "ret" not "goto".
The refcount of the indirect_string_node goes to zero here, in prune_unused_types_walk_attribs(): (gdb) c Continuing. Hardware watchpoint 5: ((struct indirect_string_node *) 2123651344)->refcount Old value = 2 New value = 0 prune_unused_types_walk_attribs (die=0x7eec09d8) at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18314 18314 for (ix = 0; VEC_iterate (dw_attr_node, die->die_attr, ix, a); ix++) (gdb) bt #0 prune_unused_types_walk_attribs (die=0x7eec09d8) at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18314 #1 0x007cf108 in prune_unused_types_walk (die=0x7eec09d8) at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18472 #2 0x007cf135 in prune_unused_types_walk (die=0x7eec0690) at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18478 #3 0x007cf135 in prune_unused_types_walk (die=0x7fcb3f00) at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18478 #4 0x007cf38c in prune_unused_types () at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18579 #5 0x007cfc45 in dwarf2out_finish ( filename=0x80b5288 "/gnu/gcc/gcc-unpatched/gcc/java/expr.c") at /gnu/gcc/gcc-unpatched/gcc/dwarf2out.c:18758 #6 0x00db0d32 in compile_file () at /gnu/gcc/gcc-unpatched/gcc/toplev.c:1080 #7 0x00db2cbe in do_compile () at /gnu/gcc/gcc-unpatched/gcc/toplev.c:2382 #8 0x00db2d8c in toplev_main (argc=30, argv=0x8079df0) at /gnu/gcc/gcc-unpatched/gcc/toplev.c:2424 #9 0x006281ed in main (argc=30, argv=0x8079df0) at /gnu/gcc/gcc-unpatched/gcc/main.c:35 (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41404