From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1853) id AE256385E019; Wed, 4 Aug 2021 14:19:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AE256385E019 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Bernd Edlinger To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-2735] Fix debug info for ignored decls at start of assembly X-Act-Checkin: gcc X-Git-Author: Bernd Edlinger X-Git-Refname: refs/heads/master X-Git-Oldrev: 9fcb8ec60302f5f110f94a885b618993c28d18d3 X-Git-Newrev: 96c82a16b2076891a9974d0f0e96a0b85fbc2df4 Message-Id: <20210804141915.AE256385E019@sourceware.org> Date: Wed, 4 Aug 2021 14:19:15 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Aug 2021 14:19:15 -0000 https://gcc.gnu.org/g:96c82a16b2076891a9974d0f0e96a0b85fbc2df4 commit r12-2735-g96c82a16b2076891a9974d0f0e96a0b85fbc2df4 Author: Bernd Edlinger Date: Sat Jul 24 12:53:39 2021 +0200 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 PR ada/101575 * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy .file statement when needed. Diff: --- gcc/dwarf2out.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 884f1e191c6..b91a9b5abaa 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 = ""; + maybe_emit_file (lookup_filename (filename0)); + } } /* A helper function for dwarf2out_finish called through