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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
And in the *.sra dump, I really don't see any way how it could be two:
  MEM[(struct  &)&n1D.7146 clique 22 base 1] ={v} {CLOBBER};
...
  n1D.7146 ={v} {CLOBBER};
...
  MEM[(struct  &)&n1D.7698 clique 27 base 1] ={v} {CLOBBER};
  SR.161_6 = SR.150_36;
  MEM[(struct tupleD.6437 *)&n1D.7698 + 8B] = SR.161_6;
  n1$tail$head$payload_91 = MEM[(struct tupleD.6437 *)&n1D.7698 + 4B];
...
  n1D.7698 ={v} {CLOBBER};

and no other stmts referencing n1.  So, we have the whole var undefined, then
we store an int at offset 8 bytes into it and read an int from offset 4 into
it.
That is uninitialized load which as #c5 tried to prove wasn't there before
late_intra_sra.

Reply via email to