diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-07-24 12:53:39 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-08-04 16:18:07 +0200 |
commit | 96c82a16b2076891a9974d0f0e96a0b85fbc2df4 (patch) | |
tree | a99f13d6210d676eee99b0c461eb1f3c3c424f9e /gcc | |
parent | 9fcb8ec60302f5f110f94a885b618993c28d18d3 (diff) | |
download | gcc-96c82a16b2076891a9974d0f0e96a0b85fbc2df4.zip gcc-96c82a16b2076891a9974d0f0e96a0b85fbc2df4.tar.gz gcc-96c82a16b2076891a9974d0f0e96a0b85fbc2df4.tar.bz2 |
Fix debug info for ignored decls at start of assembly
Ignored functions decls that are compiled at the start of
the assembly have bogus line numbers until the first .file
directive, as reported in PR101575.
The corresponding binutils bug report is
https://sourceware.org/bugzilla/show_bug.cgi?id=28149
The work around for this issue is to emit a dummy .file
directive before the first function is compiled, unless
another .file directive was already emitted previously.
2021-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR ada/101575
* dwarf2out.c (dwarf2out_assembly_start): Emit a dummy
.file statement when needed.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/dwarf2out.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 884f1e1..b91a9b5 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -29389,7 +29389,18 @@ dwarf2out_assembly_start (void) output_quoted_string (asm_out_file, remap_debug_filename (filename0)); fputc ('\n', asm_out_file); } + else #endif + /* Work around for PR101575: output a dummy .file directive. */ + if (!last_emitted_file && dwarf_debuginfo_p () + && debug_info_level >= DINFO_LEVEL_TERSE) + { + const char *filename0 = get_AT_string (comp_unit_die (), DW_AT_name); + + if (filename0 == NULL) + filename0 = "<dummy>"; + maybe_emit_file (lookup_filename (filename0)); + } } /* A helper function for dwarf2out_finish called through |