This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/56888] memcpy implementation optimized as a call to memcpy


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]