Patchwork [google/4.6] Fix problem where -gfission emits duplicate strings (issue5824050)

login
register
mail settings
Submitter Cary Coutant
Date March 14, 2012, 6:15 p.m.
Message ID <20120314181524.57ED4E11BA@ccoutant.mtv.corp.google.com>
Download mbox | patch
Permalink /patch/146703/
State New
Headers show

Comments

Cary Coutant - March 14, 2012, 6:15 p.m.
This is for the google/gcc-4_6 branch only.

Fix output_indirect_string so that it does not output strings that
have already been written to the .debug_str.dwo section.

This is a backport of  part of an unrelated change from upstream 4.7:
http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00130.html

Tested: bootstrap, core, mantle, crust (in progress).


2012-03-14   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (output_indirect_string): Check for DW_FORM_strp
	instead of presence of label and non-zero refcount.



--
This patch is available for review at http://codereview.appspot.com/5824050

Patch

Index: dwarf2out.c
===================================================================
--- dwarf2out.c	(revision 185269)
+++ dwarf2out.c	(working copy)
@@ -23042,7 +23042,7 @@  output_indirect_string (void **h, void *
 {
   struct indirect_string_node *node = (struct indirect_string_node *) *h;
 
-  if (node->label && node->refcount)
+  if (node->form == DW_FORM_strp)
     {
       switch_to_section (debug_str_section);
       ASM_OUTPUT_LABEL (asm_out_file, node->label);