https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86456
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so we populate debug_line_str_hash via dwarf2out_early_finish LTO debug
output
#0 output_line_string (form=DW_FORM_line_strp,
str=0x7fffffffeb19 "/abuild/rguenther/obj-sccvn-g/gcc",
entry_kind=0x21a415a "Directory Entry", idx=0)
at /space/rguenther/src/gcc-sccvn/gcc/dwarf2out.c:12104
#1 0x0000000000d66929 in output_file_names ()
at /space/rguenther/src/gcc-sccvn/gcc/dwarf2out.c:12295
#2 0x0000000000d6785a in output_line_info (prologue_only=true)
at /space/rguenther/src/gcc-sccvn/gcc/dwarf2out.c:12679
#3 0x0000000000d9cead in dwarf2out_early_finish (
filename=0x7fffffffe299 "t.ii")
at /space/rguenther/src/gcc-sccvn/gcc/dwarf2out.c:32051
where the string form is decided on by
if (DWARF5_USE_DEBUG_LINE_STR)
str_form = DW_FORM_line_strp;
without -flto output_filenames isn't called. That's possibly because
in dwarf2out_finish we call it conditional on
if (! output_asm_line_debug_info ())
output_line_info (false);
But for early debug we _do_ want a .debug_line section with filenames
and all. That means all *ASM_LINE_DEBUG_INFO stuff doesn't apply here,
in particular the section needs to be created independent of that.