The following fixes PR86457. I also removed some leftover tests of dwarf2out_as_loc_support in favor of output_asm_line_debug_info.
Bootstrap and regtest running on x86_64-unknown-linux-gnu. Richard. 2018-07-10 Richard Biener <rguent...@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. Index: gcc/dwarf2out.c =================================================================== --- gcc/dwarf2out.c (revision 262538) +++ gcc/dwarf2out.c (working copy) @@ -28483,7 +28483,7 @@ init_sections_and_labels (bool early_lto 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 *file /* 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) {