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

Reply via email to