https://gcc.gnu.org/g:50d3f67c71cf77a4ec95152079d37adf9d0b0a35

commit r14-11753-g50d3f67c71cf77a4ec95152079d37adf9d0b0a35
Author: Richard Biener <rguent...@suse.de>
Date:   Tue May 14 11:13:51 2024 +0200

    tree-optimization/120156 - ICE in ptr_derefs_may_alias_p
    
    This picks the ptr_derefs_may_alias_p fix from the PR99954 fix
    which said:  This makes us run into a latent issue in
    ptr_deref_may_alias_decl_p when the pointer is something like &MEM[0].a
    in which case we fail to handle non-SSA name pointers.  Add code
    similar to what we have in ptr_derefs_may_alias_p.
    
            PR tree-optimization/120156
            * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Verify
            the pointer is an SSA name.
    
    (cherry picked from commit c290e6a0b7a9de5692963affc6627a4af7dc2411)

Diff:
---
 gcc/tree-ssa-alias.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/tree-ssa-alias.cc b/gcc/tree-ssa-alias.cc
index 790447b38403..0a1f3d257a46 100644
--- a/gcc/tree-ssa-alias.cc
+++ b/gcc/tree-ssa-alias.cc
@@ -295,6 +295,11 @@ ptr_deref_may_alias_decl_p (tree ptr, tree decl)
   if (!may_be_aliased (decl))
     return false;
 
+  /* From here we require a SSA name pointer.  Anything else aliases.  */
+  if (TREE_CODE (ptr) != SSA_NAME
+      || !POINTER_TYPE_P (TREE_TYPE (ptr)))
+    return true;
+
   /* If we do not have useful points-to information for this pointer
      we cannot disambiguate anything else.  */
   pi = SSA_NAME_PTR_INFO (ptr);

Reply via email to