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

--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> ---
w/o SRA the cases look like

  <bb 97> [48.23%]:
  <&0x7f3d13ec30f0> f = f;
  <&0x7f3d13ec3140> MEM[(struct parser_binder *)&D.614964 + 4B] = f;
  <&0x7f3d13ec3190> value_405 = (size_t) &stored_vtable.base;
  <&0x7f3d1f70cdc0> value_406 = value_405 | 1;
  <&0x7f3d13ec31e0> value.90_407 = (struct vtable_base *) value_406;
  <&0x7f3d13ec3230> MEM[(struct function4 *)&D.614964].D.547000.vtable =
value.90_407;
  <&0x7f3d13ebd9b0> MEM[(struct  &)&tmp] ={v} {CLOBBER};
  <&0x7f3d13ec3370> tmp.D.547000.vtable = value.90_407;
  <&0x7f3d13ec3460> tmp.D.547000.functor = MEM[(struct function4
*)&D.614964].D.547000.functor;
  <&0x7f3d13ec35f0> MEM[(struct function4 *)&D.614964].D.547000.vtable = 0B;
  <&0x7f3d13f06d70> _135 = MEM[(struct vtable_base * *)this_10(D) + 144B];
  <&0x7f3d13f06dc0> if (_135 != 0B)

which look similar from TBAA perspective (parser_binder vs. function4).  Might
not miscompile because of pure luck of course.

Reply via email to