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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Last reconfirmed|                            |2025-02-27
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Note this was a correctness fix, there isn't much we can do here apart from
generally trying to preserve alias info better.  That would be

diff --git a/gcc/tree-predcom.cc b/gcc/tree-predcom.cc
index d45aa3857b9..de4a5928d65 100644
--- a/gcc/tree-predcom.cc
+++ b/gcc/tree-predcom.cc
@@ -1824,6 +1824,7 @@ ref_at_iteration (data_reference_p dr, int iter,
   tree type = build_aligned_type (TREE_TYPE (ref),
                                  get_object_alignment (ref));
   ref = build2 (MEM_REF, type, addr, alias_ptr);
+  copy_ref_info (ref, DR_REF (dr));
   if (ref_type)
     ref = build3 (ref_code, ref_type, ref, ref_op1, ref_op2);
   return ref;

I can test this.

Reply via email to