The patch in revision 113012 broke reference counting. It adds this: + /* Set the string's refcount to 0 so that prune_unused_types_mark + accounts properly for it. */ + if (AT_class (a) == dw_val_class_str) + a->dw_attr_val.v.val_str->refcount = 0;
But something in this patch causes this to trigger for the strings attached to the compilation unit DIE, and nothing ever increments them again. prune_unused_types_update_strings is never called for the compilation unit. I think this is because prune_unused_types_prune only calls it for children of the current DIE. Things were fine in 4.1. -- Summary: [4.2 regression] Dwarf no longer uses merged strings for DW_AT_comp_dir Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: drow at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28063