https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103246

--- Comment #18 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
This seems to fix it for this particular partitioning at least ;)
The problem was in summary update producing ill formed access range (which
doesn't know base but knows offset from it) and that confused streamer.

I will test it with additional sanity check that accesses are sane.

diff --git a/gcc/ipa-modref-tree.h b/gcc/ipa-modref-tree.h
index 1bf2aa8460e..c29dda56fc1 100644
--- a/gcc/ipa-modref-tree.h
+++ b/gcc/ipa-modref-tree.h
@@ -677,6 +677,8 @@ struct GTY((user)) modref_tree
                    access_node->parm_index = (*map)[access_node->parm_index];
                  else
                    access_node->parm_index = MODREF_UNKNOWN_PARM;
+                 if (access_node->parm_index == MODREF_UNKNOWN_PARM)
+                   access_node->parm_offset_known = false;
                }
          }
       }

Reply via email to