This is the mail archive of the 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]

Re: Obscure crashes due to gcc 4.9 -O2 => -fisolate-erroneous-paths-dereference

On 03/03/15 12:57, Martin Sebor wrote:

As a data point(*) it might be interesting to note that GCC itself
relies on memcpy providing stronger guarantees than the C standard
requires it to by emitting calls to the function for large structure
self-assignments (which are strictly conforming, as discussed in bug
Right. I actually spent quite a bit of time struggling with this a while back in a different context. The only case I could come up with where GCC would generate an overlapping memcpy was self assignment, but even that was bad and while we ultimately punted, I've always considered it a wart.

 [*] IMO, one in favor of tightening up the memcpy specification
to require implementations to provide the expected semantics.
That works for me :-)

The things done in glibc's memcpy are a bit on the absurd side and the pain caused by the changes over time is almost impossible to overstate. If the Austin group tightens memcpy to require fewer surprises I think most developers would ultimately be happy with the result -- a few would complain about the performance impacts for specific workloads, but I suspect they'd be in the minority.


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