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?