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.