This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/56888] memcpy implementation optimized as a call to memcpy
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 06 Jun 2014 11:54:18 +0000
- Subject: [Bug middle-end/56888] memcpy implementation optimized as a call to memcpy
- Auto-submitted: auto-generated
- References: <bug-56888-4 at http dot gcc dot gnu dot org/bugzilla/>
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.