Re: OSX doesn't accept identical source/target for strcpy() anymore - Mailing list pgsql-hackers

From didier
Subject Re: OSX doesn't accept identical source/target for strcpy() anymore
Date
Msg-id CAJRYxuLj=usQC5FtnVeYMPjSZt2n5T9NOi4Hj-LMtPnVWdA1JQ@mail.gmail.com
Whole thread Raw
In response to Re: OSX doesn't accept identical source/target for strcpy() anymore  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi,


On Mon, Oct 28, 2013 at 7:11 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

If copying takes place between objects that overlap, the behavior is undefined.

Both gcc and glibc have been moving steadily in the direction of
aggressively exploiting "undefined behavior" cases for optimization
purposes.  I don't know if there is yet a platform where strncpy with
src == dest behaves oddly, but we'd be foolish to imagine that it's
not going to happen eventually.  If anything, Apple is probably doing
us a service by making it obvious where we're failing to adhere to spec.

However ... I still can't replicate this here, and as you say, there's
about zero chance of keeping our code clean of this problem unless we
can set up a buildfarm member that will catch it.

                        regards, tom lane


I haven't a 10.9 box for double checking but there's a gcc command line triggering the same assert for strcpy and gcc at  http://lists.gnu.org/archive/html/bug-bash/2013-07/msg00011.html.

Didier

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: OSX doesn't accept identical source/target for strcpy() anymore
Next
From: Robert Haas
Date:
Subject: Re: better atomics