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

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #9)
> Perhaps with -fno-strict-aliasing we think the store to *this might alias
> with it?  Though, that shouldn't be about TBAA but simple points-to
> analysis, where obviously this as function argument can't point to a local
> var in the function.

It's the

  MEM[(long unsigned int *)_12 + -8B] ={v} {CLOBBER};

store, __tmp escapes in the indirect call

     _48 (&MEM[(struct _Function_base *)&__tmp + 16B]._M_functor,   
          &MEM[(struct _Function_base *)&__tmp + 16B]._M_functor, 3);

and _12 points to escaped (its loaded from this).

I guess since a CLOBBER isn't technically a "store" we could ignore it
and continue looking for data to load.  If it would alias then we'd
access (partly) 'uninitialized' memory which would invoke undefined
behavior.

Reply via email to