https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105030
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- That occured to me as well - I think the answer is maybe. In principle foo() could launch a thread and make the 'atemp' available to it. As long as foo() outlives thread termination that should be all well-defined and so we'd have to take this possibility into account. There's currently no code ruling this out and doing that is likely difficult. So maybe the answer is to add -fallow-store-data-races={local,all}, map -fallow-store-data-races to -fallow-store-data-races=all and make -fallow-store-data-races=local the default?