https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> --- Actually, this is already supposed to be handled but the code is not effective due to a typo. This fixes it: diff --git a/gcc/gimple-ssa-warn-access.cc b/gcc/gimple-ssa-warn-access.cc index f639807a78a..f9508a1d211 100644 --- a/gcc/gimple-ssa-warn-access.cc +++ b/gcc/gimple-ssa-warn-access.cc @@ -4082,7 +4082,9 @@ pointers_related_p (gimple *stmt, tree p, tree q, pointer_query &qry) access_ref pref, qref; if (!qry.get_ref (p, stmt, &pref, 0) || !qry.get_ref (q, stmt, &qref, 0)) - return true; + /* GET_REF() only rarely fails. When it does, it's likely because + it involves a self-referential PHI. Return a conservative result. */ + return false; return pref.ref == qref.ref; }