https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108511
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- I don't know what the assert really wants to check but /* If callee is local to the original translation unit, it will be defined. */ if (!TREE_PUBLIC (callee->decl) && !DECL_EXTERNAL (callee->decl)) return true; is now possibly "wrong". The cases I changed are DECL_EXTERNAL && !TREE_PUBLIC to no longer make them TREE_PUBLIC (not sure why the FE sets DECL_EXTERNAL, possibly because it's a declaration). But "local to the original TU" should be just !TREE_PUBLIC, no? Anyway, I can't make real sense of what the function should do, my understanding of the comment doesn't match up with the code ... Honza?