https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667

--- Comment #71 from Patrick J. LoPresti <lopresti at gmail dot com> ---
(In reply to Eric Botcazou from comment #70)
>
> No, there is no bug in GCC, since it effectively does not apply "restrict"
> to the internal calls to memcpy it generates.

"restrict" is not something you apply to a call; it is something the call
applies to you. If a function declares two argument pointers "restrict" and you
pass in overlapping (or identical) memory regions, you are invoking undefined
behavior.

I still believe this is a bug in GCC, as I did a decade ago. But at least the
developers eventually documented this non-standard library constraint they
impose.

Reply via email to