https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79776
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Patch doesn't help. Note IPA PTA is a simple IPA pass running after inlining decisions are committed to the IL so there shouldn't be any inlining clones around? Oh, and it does try to handle them: /* Build the constraints. */ FOR_EACH_DEFINED_FUNCTION (node) { varinfo_t vi; /* Nodes without a body are not interesting. Especially do not visit clones at this point for now - we get duplicate decls there for inline clones at least. */ if (!node->has_gimple_body_p () || node->global.inlined_to) continue; obviously it doesn't work... One way would be to, in this loop, only walk over ultimate_alias_target () nodes (hopefully those will be the ones with body...). @@ -7785,6 +7793,10 @@ ipa_pta_execute (void) there for inline clones at least. */ if (!node->has_gimple_body_p () || node->global.inlined_to) continue; + + if (node->ultimate_alias_target () != node) + continue; + node->get_body (); gcc_assert (!node->clone_of); doesn't work either. So we have the same decl in multiple alias chains?! And multiple times in the symbol table? Sth is fishy with cgraph here.