https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79776

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Well, PTA simply assumes that cgraph_for_symbol_thunks_and_aliases will call
the callback for nodes with different decls.  If it's not easy to arrange for
that a "simple" fix would be sth like

Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c  (revision 246414)
+++ gcc/tree-ssa-structalias.c  (working copy)
@@ -7617,7 +7617,15 @@ associate_varinfo_to_alias (struct cgrap
 {
   if ((node->alias || node->thunk.thunk_p)
       && node->analyzed)
-    insert_vi_for_tree (node->decl, (varinfo_t)data);
+    {
+      /* We can run into duplicate decls, so gracefully handle those.  */
+      bool existed;
+      varinfo_t &vi = vi_for_tree->get_or_insert (node->decl, &existed);
+      if (existed)
+       gcc_assert (vi == (varinfo_t)data);
+      else
+       vi = (varinfo_t)data;
+    }
   return false;
 }

Reply via email to