http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51635

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-20 
14:16:35 UTC ---
It's actually easy to do.  We just have to make sure that the TYPE_DECLs we
refer to are those of their type.  Thus,

Index: gcc/lto/lto.c
===================================================================
--- gcc/lto/lto.c       (revision 182525)
+++ gcc/lto/lto.c       (working copy)
@@ -867,7 +867,11 @@ uniquify_nodes (struct data_in *data_in,
       if (t == NULL_TREE)
        continue;

-      if (TREE_CODE (t) == VAR_DECL)
+      if (TYPE_P (t)
+         && TYPE_NAME (t)
+         && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL)
+       TYPE_NAME (t) = TYPE_NAME (TREE_TYPE (TYPE_NAME (t)));
+      else if (TREE_CODE (t) == VAR_DECL)
        lto_register_var_decl_in_symtab (data_in, t);
       else if (TREE_CODE (t) == FUNCTION_DECL && !DECL_BUILT_IN (t))
        lto_register_function_decl_in_symtab (data_in, t);

Reply via email to