https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98744
--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> --- That cannot be the problem. IPA-SRA re-creates the call statements and builds them with gimple_build_call_vec (callee_decl, vargs); where calle_decl is the new function which has had its type adjusted and everything. Indeed, IPA-SRA does not remove an argument here, it just tries to push one dereference to the caller and the printed type is correct. Even in the release_ssa dump, pre-IPA, the constructor has two parameters but is called with just one. At the moment it looks to me that IPA-SRA makes an already invalid IL somehow a bit worse. Indeed, in the revision before 424deca72b6 the constructor in the release_ssa dump only has one parameter. Jason, is it possible a wrong constructor is emitted to the IL? (And note that tree-ssa-uninit.c should not ICE either, because with K&R C input or malformed LTO we can have weird mismatches too.)