On Tue, 27 Sep 2016, Rainer Orth wrote:

> Hi Richard,
> 
> >> this patch introduced many pch assembly comparison failures on Solaris
> >> (both sparc and x86, 32 and 64-bit, /bin/as only), like
> >> 
> >> FAIL: gcc.dg/pch/common-1.c   -O3 -g  assembly comparison
> >> FAIL: gcc.dg/pch/common-1.c  -O0 -g assembly comparison
> >> 
> >> gcc.log shows this diff:
> >> 
> >> <       .long   .Letext0
> >> >       .long
> >> 
> >> While the .Letext0 label is still in the assembly output, it isn't
> >> referenced inside .debug_line, as can be seen in the diff.
> >
> > Can you check if moving
> >
> > static void
> > dwarf2out_assembly_start (void)
> > {
> > #ifndef DWARF2_LINENO_DEBUGGING_INFO
> >   ASM_GENERATE_INTERNAL_LABEL (text_section_label, TEXT_SECTION_LABEL, 0);
> >   ASM_GENERATE_INTERNAL_LABEL (text_end_label, TEXT_END_LABEL, 0);
> >   ASM_GENERATE_INTERNAL_LABEL (cold_text_section_label,
> >                                COLD_TEXT_SECTION_LABEL, 0);
> >   ASM_GENERATE_INTERNAL_LABEL (cold_end_label, COLD_END_LABEL, 0);
> >
> >   switch_to_section (text_section);
> >   ASM_OUTPUT_LABEL (asm_out_file, text_section_label);
> > #endif
> >
> > back to dwarf2out_init helps?  Ah!  Does
> >
> > Index: gcc/dwarf2out.c
> > ===================================================================
> > --- gcc/dwarf2out.c     (revision 240521)
> > +++ gcc/dwarf2out.c     (working copy)
> > @@ -25657,14 +25687,6 @@ dwarf2out_init (const char *filename ATT
> >      vec_alloc (macinfo_table, 64);
> >  #endif
> >  
> > -  /* Make sure the line number table for .text always exists.  */
> > -  text_section_line_info = new_line_info_table ();
> > -  text_section_line_info->end_label = text_end_label;
> > -
> > -#ifdef DWARF2_LINENO_DEBUGGING_INFO
> > -  cur_line_info_table = text_section_line_info;
> > -#endif
> > -
> >    /* If front-ends already registered a main translation unit but we were 
> > not
> >       ready to perform the association, do this now.  */
> >    if (main_translation_unit != NULL_TREE)
> > @@ -25688,6 +25710,14 @@ dwarf2out_assembly_start (void)
> >    ASM_OUTPUT_LABEL (asm_out_file, text_section_label);
> >  #endif
> >  
> > +  /* Make sure the line number table for .text always exists.  */
> > +  text_section_line_info = new_line_info_table ();
> > +  text_section_line_info->end_label = text_end_label;
> > +
> > +#ifdef DWARF2_LINENO_DEBUGGING_INFO
> > +  cur_line_info_table = text_section_line_info;
> > +#endif
> > +
> >    if (HAVE_GAS_CFI_SECTIONS_DIRECTIVE
> >        && dwarf2out_do_cfi_asm ()
> >        && (!(flag_unwind_tables || flag_exceptions)
> >
> >
> > fix it?  Ok if it passes testing for you.
> 
> testing on a single testcase worked fine.  I'll just run a full
> bootstrap to make sure everything is fine.

Meanwhile I bootstrapped and tested it on x86_64-unknown-linux-gnu and
applied it to trunk.

Sorry for the breakage.

Richard.

2016-09-28  Richard Biener  <rguent...@suse.de>

        * dwarf2out.c (dwarf2out_init): Move text_section_line_info init ...
        (dwarf2out_assembly_start): ... here.

diff -u gcc/dwarf2out.c gcc/dwarf2out.c
--- gcc/dwarf2out.c     (working copy)
+++ gcc/dwarf2out.c     (working copy)
@@ -25684,14 +25687,6 @@
     vec_alloc (macinfo_table, 64);
 #endif
 
-  /* Make sure the line number table for .text always exists.  */
-  text_section_line_info = new_line_info_table ();
-  text_section_line_info->end_label = text_end_label;
-
-#ifdef DWARF2_LINENO_DEBUGGING_INFO
-  cur_line_info_table = text_section_line_info;
-#endif
-
   /* If front-ends already registered a main translation unit but we were not
      ready to perform the association, do this now.  */
   if (main_translation_unit != NULL_TREE)
@@ -25715,6 +25710,14 @@
   ASM_OUTPUT_LABEL (asm_out_file, text_section_label);
 #endif
 
+  /* Make sure the line number table for .text always exists.  */
+  text_section_line_info = new_line_info_table ();
+  text_section_line_info->end_label = text_end_label;
+
+#ifdef DWARF2_LINENO_DEBUGGING_INFO
+  cur_line_info_table = text_section_line_info;
+#endif
+
   if (HAVE_GAS_CFI_SECTIONS_DIRECTIVE
       && dwarf2out_do_cfi_asm ()
       && (!(flag_unwind_tables || flag_exceptions)

Reply via email to