gas: Make sure .debug_line file table contains a zero filename and dir
authorMark Wielaard <mark@klomp.org>
Mon, 3 Aug 2020 00:23:44 +0000 (02:23 +0200)
committerMark Wielaard <mark@klomp.org>
Tue, 4 Aug 2020 09:28:39 +0000 (11:28 +0200)
commitf63d03dde00449e71e32fea3496edc69d2e7d386
tree1516ae8f73a08bf76e0d9f5b9458db54e44fca20
parenta3b3e8586d80204660e203d05edfe88418c394a2
gas: Make sure .debug_line file table contains a zero filename and dir

For DWARF5 the zero file list entry in the .debug_line table represents
the compile unit main file. It can be set with .file 0 when -gdwarf-5
is given. But since this directive is illegal for older versions, this
is almost never set. To make sure it is always set (so DW_AT_name of
the compile unit can be set) use file (and dir) 1 if that is defined
(otherwise fall back to pwd, to match DW_AT_comp_dir).

gas/ChangeLog:

* gas/dwarf2dbg.c (out_dir_and_file_list): For DWARF5 emit at
least one directory if there is at least one file. Use dirs[1]
if dirs[0] is not set, or if there is no dirs[1] the current
working directory. Use files[1] filename, when files[0] filename
isn't set.
gas/ChangeLog
gas/dwarf2dbg.c