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

Reply via email to