https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-01-04
Component|c |middle-end
Ever confirmed|0 |1
Keywords| |alias, wrong-code
Status|UNCONFIRMED |NEW
CC| |rguenth at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. Note we have
/* Freeing memory kills the pointed-to memory. More importantly
the call has to serve as a barrier for moving loads and stores
across it. */
case BUILT_IN_STACK_RESTORE:
case BUILT_IN_FREE:
case BUILT_IN_GOMP_FREE:
return ".co ";
and free() should be ".Co " then (same on branches but in tree-ssa-alias.c).
I guess the GOMP free implementation could make sure to preserve errno
if it calls free().