From: Richard Biener Date: Tue, 14 May 2024 09:13:51 +0000 (+0200) Subject: tree-optimization/120156 - ICE in ptr_derefs_may_alias_p X-Git-Tag: releases/gcc-14.3.0~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50d3f67c71cf77a4ec95152079d37adf9d0b0a35;p=thirdparty%2Fgcc.git 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 --git a/gcc/tree-ssa-alias.cc b/gcc/tree-ssa-alias.cc index 790447b3840..0a1f3d257a4 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);