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.

Reply via email to