https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888
--- Comment #32 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 6 Jun 2014, terra at gnome dot org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 > > M Welinder <terra at gnome dot org> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |terra at gnome dot org > > --- Comment #31 from M Welinder <terra at gnome dot org> --- > Extra complication: the C library's memcpy may change errno to any non-zero > value if it so desires. (C99 section 7.5 #5.) That's news to me. > That means that raw calls to memcpy (and friends) cannot be generated anywhere > where the compiler is unable to prove that the value of errno isn't used. That's almost impossible. > Extra code to store and restore errno must be emitted otherwise. That is not possible. Note that the compiler emits calls to memcpy for struct copies anyway, so if there is a problem it is a long-standing one.