https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67133
--- Comment #29 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Martin Jambor from comment #28) > I see, thinking about signature changes, I forgot about the situations > where we do not have the body of the callee in the first place. Yeah, the whole gimple_call_fntype thing was invented so we can aggressively propagate (mismatching) fndecls into calls, making them direct calls and resulting in much better cgraph analysis. Previously those calls remained indirect (to preserve the original fntype), we only propagated when the types of the call and the fndecl "matched". But "matched" is hard to compute thus simply preserving the original type always was much easier and allows for very aggressive propagation. Of course now you need to deal with actual mismatches and have to be careful what you access.