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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
  vectp.7_8 = &probe_144795_l.0_1->D.4608.D.4603.__tmp10;
  MEM <vector(2) int> [(union  *)probe_144795_l.0_1 + 8B] = { 0, 0 };
  # DEBUG BEGIN_STMT
  strlcpy (vectp.7_8, in_6(D), 8); [tail call]

But it is not the vectorizer that is causing the issue really.
Before fre5 we have:
```
  vectp.7_8 = &probe_144795_l.0_1->D.4608.D.4603.__tmp10;
  MEM <vector(2) int> [(union  *)vectp.7_8] = { 0, 0 };
  # DEBUG BEGIN_STMT
  _2 = &probe_144795_l.0_1->D.4608.D.4607.__tmp16;
  strlcpy (_2, in_6(D), 8);
```
Which looks correct.

And then fre5 does:
  probe_144795_l.0_1 = probe_144795_l;
  vectp.7_8 = &probe_144795_l.0_1->D.4608.D.4603.__tmp10;
  MEM <vector(2) int> [(union  *)vectp.7_8] = { 0, 0 };
  # DEBUG BEGIN_STMT
  strlcpy (vectp.7_8, in_6(D), 8);

Which is also correct due to &probe_144795_l.0_1->D.4608.D.4603.__tmp10 and
&probe_144795_l.0_1->D.4608.D.4607.__tmp16 being the same value except guess
what waccess needs the __tmp16  variant.

Reply via email to