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.
This commit is contained in:
Jan Beulich
2022-03-23 08:48:24 +01:00
parent 8728bc3d87
commit 1740425885

View File

@ -2137,7 +2137,7 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset)
bool emit_timestamps = true; bool emit_timestamps = true;
bool emit_filesize = true; bool emit_filesize = true;
segT line_str_seg = NULL; segT line_str_seg = NULL;
symbolS *line_strp; symbolS *line_strp, *file0_strp = NULL;
/* Output the Directory Table. */ /* Output the Directory Table. */
if (DWARF2_LINE_VERSION >= 5) if (DWARF2_LINE_VERSION >= 5)
@ -2301,9 +2301,17 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset)
} }
else 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); subseg_set (line_seg, 0);
TC_DWARF2_EMIT_OFFSET (line_strp, sizeof_offset); 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. */ /* Directory number. */