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().