This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/66668] [6 regression] FAIL: gcc.dg/debug/dwarf2/stacked-qualified-types-3.c scan-assembler-times DIE \\([^\n]*\\) DW_TAG_(?:const|volatile|atomic|restrict)_type 8
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 19 Jan 2016 11:44:23 +0000
- Subject: [Bug debug/66668] [6 regression] FAIL: gcc.dg/debug/dwarf2/stacked-qualified-types-3.c scan-assembler-times DIE \\([^\n]*\\) DW_TAG_(?:const|volatile|atomic|restrict)_type 8
- Auto-submitted: auto-generated
- References: <bug-66668-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66668
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org,
| |jason at gcc dot gnu.org,
| |mark at gcc dot gnu.org
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, if what we care about here is solely debug info size and canonicalization
of the order and amount of
DW_TAG_atomic_type/DW_TAG_restrict_type/DW_TAG_volatile_type/DW_TAG_const_type
DIEs for the same non-qualified type, we could perhaps just optimize it later,
in one of the numerous walks over the DIE tree. Perhaps just if we see one of
these 4 DIEs, and the referenced DIE has the same parent, just move all the
qualified variants next to the underlying unqualified type, and then once they
are all moved there, figure out what qualified variants we have, determine how
to get fewest possible qualified DIEs for the non-qualified type, and build new
qualified DIEs if needed and adjust them, and for the ones that should be
replaced by others perhaps use a new die_struct bit to tell that all references
should be rewritten to refer to some other DIE (and unlink them from the tree),
then in another walk adjust all references to so marked DIEs.
Mark/Jason, does that sound reasonable to you?