https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
But note that while free() may clobber errno the state after it is undefined
(it's not documented to set it to any specific value). So I'd argue the
check_errno_unmodified testcase is not really relevant.
A relevant testcase might be
void foo (void *p)
{
errno = 0;
free (p);
errno = 0;
}
where GCC might be tricked into elimiating the late errno = 0 store as
redundant with the earlier (it doesn't do that right now, but I didn't
try too hard but DSE elides the earlier store).
The ensure_errno_unmodified is relevant though.