diff options
author | Tom de Vries <tdevries@suse.de> | 2021-11-26 09:59:45 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2021-11-26 09:59:45 +0100 |
commit | 4780e5e4933a2497a5aecc4ceabbbb8e82aaf822 (patch) | |
tree | 27bd71b7c86c6e12faa9027fa7ee882e50ce68d2 /gas/dwarf2dbg.c | |
parent | c0f9d658279d4d352672e283df53c1072925fc97 (diff) | |
download | gdb-4780e5e4933a2497a5aecc4ceabbbb8e82aaf822.zip gdb-4780e5e4933a2497a5aecc4ceabbbb8e82aaf822.tar.gz gdb-4780e5e4933a2497a5aecc4ceabbbb8e82aaf822.tar.bz2 |
[gas] Fix file 0 dir with -gdwarf-5
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.
Diffstat (limited to 'gas/dwarf2dbg.c')
-rw-r--r-- | gas/dwarf2dbg.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index 256412f..7300bfe 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -2123,7 +2123,7 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset) 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; @@ -2275,7 +2275,13 @@ out_dir_and_file_list (segT line_seg, int sizeof_offset) .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) |