In out_dir_and_file_list, if file 0 is copied from file 1, only the filename
is copied, and the dir and md5 fields are left to their default values.
Fix this by adding the copy of the dir and md5 fields.
gas/ChangeLog:
2021-11-26 Tom de Vries <tdevries@suse.de>
PR 28629
* dwarf2dbg.c (out_dir_and_file_list): When copying file 1 to file 0,
also copy dir and md5 fields.
* testsuite/gas/i386/dwarf5-line-4.d: Adjust expected output.
+2021-11-26 Tom de Vries <tdevries@suse.de>
+
+ PR 28629
+ * dwarf2dbg.c (out_dir_and_file_list): When copying file 1 to file 0,
+ also copy dir and md5 fields.
+ * testsuite/gas/i386/dwarf5-line-4.d: Adjust expected output.
+
2021-11-18 Nick Clifton <nickc@redhat.com>
* as.c (parse_args): Add support for --multibyte-handling.
size_t size;
const char *dir;
char *cp;
- unsigned int i;
+ unsigned int i, j;
bool emit_md5 = false;
bool emit_timestamps = true;
bool emit_filesize = true;
.file 0 directive. If that isn't used, but file 1 is,
then use that as main file name. */
if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1 && files[0].filename == NULL)
- files[0].filename = files[1].filename;
+ {
+ files[0].filename = files[1].filename;
+ files[0].dir = files[1].dir;
+ if (emit_md5)
+ for (j = 0; i < NUM_MD5_BYTES; ++j)
+ files[0].md5[j] = files[1].md5[j];
+ }
else
files[i].filename = "";
if (DWARF2_LINE_VERSION < 5 || i != 0)
The File Name Table \(offset 0x.*, lines 2, columns 2\):
Entry Dir Name
- 0 0 \(indirect line string, offset: 0x.*\): dwarf5-line-4.s
+ 0 1 \(indirect line string, offset: 0x.*\): dwarf5-line-4.s
1 1 \(indirect line string, offset: 0x.*\): dwarf5-line-4.s
Line Number Statements: