re PR debug/86457 (ICE in add_dwarf_attr, at dwarf2out.c:4405 since r251448)
authorRichard Biener <rguenther@suse.de>
Wed, 11 Jul 2018 07:08:54 +0000 (07:08 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 11 Jul 2018 07:08:54 +0000 (07:08 +0000)
2018-07-11  Richard Biener  <rguenther@suse.de>

PR debug/86457
* dwarf2out.c (init_sections_and_labels): Use
output_asm_line_debug_info consistently.
(dwarf2out_early_finish): Likewise.
(dwarf2out_finish): Remove DW_AT_stmt_list from early generated
type units.

From-SVN: r262551

gcc/ChangeLog
gcc/dwarf2out.c

index 8250b44..6516839 100644 (file)
@@ -1,4 +1,13 @@
-2018-07-10  Richard Biener  <rguenther@suse.de>
+2018-07-11  Richard Biener  <rguenther@suse.de>
+
+       PR debug/86457
+       * dwarf2out.c (init_sections_and_labels): Use
+       output_asm_line_debug_info consistently.
+       (dwarf2out_early_finish): Likewise.
+       (dwarf2out_finish): Remove DW_AT_stmt_list from early generated
+       type units.
+
+2018-07-11  Richard Biener  <rguenther@suse.de>
 
        * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
        Rework father_bb setting in a way to avoid propagating constants
index 4640a22..1127713 100644 (file)
@@ -28483,7 +28483,7 @@ init_sections_and_labels (bool early_lto_debug)
       debug_str_section = get_section (DEBUG_LTO_STR_SECTION,
                                       DEBUG_STR_SECTION_FLAGS
                                       | SECTION_EXCLUDE, NULL);
-      if (!dwarf_split_debug_info && !dwarf2out_as_loc_support)
+      if (!dwarf_split_debug_info && !output_asm_line_debug_info ())
        debug_line_str_section
          = get_section (DEBUG_LTO_LINE_STR_SECTION,
                         DEBUG_STR_SECTION_FLAGS | SECTION_EXCLUDE, NULL);
@@ -31125,9 +31125,9 @@ dwarf2out_finish (const char *)
          if (*slot != HTAB_EMPTY_ENTRY)
            continue;
 
-         /* Add a pointer to the line table for the main compilation unit
-            so that the debugger can make sense of DW_AT_decl_file
-            attributes.  */
+         /* Remove the pointer to the line table.  */
+         remove_AT (ctnode->root_die, DW_AT_stmt_list);
+
          if (debug_info_level >= DINFO_LEVEL_TERSE)
            reset_dies (ctnode->root_die);
 
@@ -31819,7 +31819,7 @@ dwarf2out_early_finish (const char *filename)
 
   /* When emitting DWARF5 .debug_line_str, move DW_AT_name and
      DW_AT_comp_dir into .debug_line_str section.  */
-  if (!dwarf2out_as_loc_support
+  if (!output_asm_line_debug_info ()
       && dwarf_version >= 5
       && DWARF5_USE_DEBUG_LINE_STR)
     {