[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/28149] debug info with wrong file association
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug gas/28149] debug info with wrong file association |
Date: |
Fri, 17 Sep 2021 22:58:37 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=28149
--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot
gnu.org> ---
The master branch has been updated by Alan Modra <amodra@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=51298b330327a568358da069d9808f51c6cb1672
commit 51298b330327a568358da069d9808f51c6cb1672
Author: Alan Modra <amodra@gmail.com>
Date: Fri Sep 17 09:08:15 2021 +0930
PR28149, debug info with wrong file association
gcc-11 and gcc-12 pass -gdwarf-5 to gas, in order to prime gas for
DWARF 5 level debug info. Unfortunately it seems there are cases
where the compiler does not emit a .file or .loc dwarf debug directive
before any machine instructions. (Note that the .file directive
typically emitted as the first line of assembly output doesn't count as
a dwarf debug directive. The dwarf .file has a file number before the
file name string.)
This patch delays allocation of file numbers for gas generated line
debug info until the end of assembly, thus avoiding any clashes with
compiler generated file numbers. Two fixes for test case source are
necessary; A .loc can't use a file number that hasn't already been
specified with .file.
A followup patch will remove all the gas generated line info on
seeing a .file directive.
PR 28149
* dwarf2dbg.c (num_of_auto_assigned): Delete.
(current): Update initialisation.
(set_or_check_view): Replace all accesses to view with u.view.
(dwarf2_consume_line_info): Likewise.
(dwarf2_directive_loc): Likewise. Assert that we aren't generating
line info.
(dwarf2_gen_line_info_1): Don't call set_or_check_view on
gas generated line entries.
(dwarf2_gen_line_info): Set and track filenames for gas generated
line entries. Simplify generation of labels.
(get_directory_table_entry): Use filename_cmp when comparing dirs.
(do_allocate_filenum): New function.
(dwarf2_where): Set u.filename and filenum to -1 for gas generated
line entries.
(dwarf2_directive_filename): Remove num_of_auto_assigned handling.
(process_entries): Update view field access. Call
do_allocate_filenum.
* dwarf2dbg.h (struct dwarf2_line_info): Add filename field in
union aliasing view.
* testsuite/gas/i386/dwarf2-line-3.s: Add .file directive.
* testsuite/gas/i386/dwarf2-line-4.s: Likewise.
* testsuite/gas/i386/dwarf2-line-4.d: Update expected output.
* testsuite/gas/i386/dwarf4-line-1.d: Likewise.
* testsuite/gas/i386/dwarf5-line-1.d: Likewise.
* testsuite/gas/i386/dwarf5-line-2.d: Likewise.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/28149] debug info with wrong file association, amodra at gmail dot com, 2021/09/16
- [Bug gas/28149] debug info with wrong file association, i at maskray dot me, 2021/09/17
- [Bug gas/28149] debug info with wrong file association, bernd.edlinger at hotmail dot de, 2021/09/17
- [Bug gas/28149] debug info with wrong file association,
cvs-commit at gcc dot gnu.org <=
- [Bug gas/28149] debug info with wrong file association, cvs-commit at gcc dot gnu.org, 2021/09/17
- [Bug gas/28149] debug info with wrong file association, amodra at gmail dot com, 2021/09/17
- [Bug gas/28149] debug info with wrong file association, amodra at gmail dot com, 2021/09/17
- [Bug gas/28149] debug info with wrong file association, cvs-commit at gcc dot gnu.org, 2021/09/19