From 17404258855da21324ab01e01cd650573c7ba22c Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 23 Mar 2022 08:48:24 +0100 Subject: [PATCH] gas/Dwarf5: re-use file 0 line string table entry when faking file 0 No need to emit the same string a 2nd time for file 1 in this case. --- gas/dwarf2dbg.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index c0a052df7d5..fee56c249e4 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -2137,7 +2137,7 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset) bool emit_timestamps = true; bool emit_filesize = true; segT line_str_seg = NULL; - symbolS *line_strp; + symbolS *line_strp, *file0_strp = NULL; /* Output the Directory Table. */ if (DWARF2_LINE_VERSION >= 5) @@ -2301,9 +2301,17 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset) } else { - line_strp = add_line_strp (line_str_seg, fullfilename); + if (!file0_strp) + line_strp = add_line_strp (line_str_seg, fullfilename); + else + line_strp = file0_strp; subseg_set (line_seg, 0); TC_DWARF2_EMIT_OFFSET (line_strp, sizeof_offset); + if (i == 0 && files_in_use > 1 + && files[0].filename == files[1].filename) + file0_strp = line_strp; + else + file0_strp = NULL; } /* Directory number. */ -- 2.30.2