https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97172
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Generally LTO is organized into a global stream containing types, decls etc. and local streams containing funtion bodies and initializers. Global stream thus can not contain references that are local to function bodies, like SSA_NAME, beause these are not instantiated at WPA stage and thus have no meaing. The ICE is about SSA_NAME being refered by something that is in the global stream. Judging from the testcase there is probably reference to variadic type and the variadic type now has SSA_NAME in its TYPE_SIZE or so, which should not happen.