https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69729
--- Comment #1 from Ilya Enkovich <ienkovich at gcc dot gnu.org> --- Here is a patch which caused the regression: diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 0cefc15..6bb76cc 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -2320,7 +2320,8 @@ lto_output (void) if (cgraph_node *node = dyn_cast <cgraph_node *> (snode)) { if (lto_symtab_encoder_encode_body_p (encoder, node) - && !node->alias) + && !node->alias + && (!node->thunk.thunk_p || !node->instrumented_version)) { if (flag_checking) { It was meant to disable streaming of instrumentation thunks but instead it disable streaming of thunks for instrumented functions. When original function has thunks, we create similar thunks for instrumented version. These thunks are linked with original ones via 'instrumented_version'. In this patch we just skip such thunks but these thunks are to be streamed out similar to regular thunks. It causes function in ltrans unit with no its thunk and results in ICE. I suppose this patch is a part of chkp thunks refactoring so I propose to revert it for now and delay until whole refactoring series is ready.