[Bug debug/87295] [8 Regression][early debug] ICE with -ffat-lto-objects -fdebug-types-section -g
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 1 12:14:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87295
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so we're cloning from two different type units ultimatively refering to the
same DIE. This means that copy_ancestor_tree doesn't set up decl_table
appropriately since it doesn't have the same logic as clone_as_declaration.
The following fixes tramp3d and survives the dwarf2.exp testsuites.
Index: gcc/dwarf2out.c
===================================================================
--- gcc/dwarf2out.c (revision 268446)
+++ gcc/dwarf2out.c (working copy)
@@ -8169,6 +8169,11 @@ copy_ancestor_tree (dw_die_ref unit, dw_
decl_table_entry **slot = NULL;
struct decl_table_entry *entry = NULL;
+ /* If DIE refers to a stub unfold that so we get the appropriate
+ DIE registered as orig in decl_table. */
+ if (dw_die_ref c = get_AT_ref (die, DW_AT_signature))
+ die = c;
+
if (decl_table)
{
/* Check if the entry has already been copied to UNIT. */
More information about the Gcc-bugs
mailing list