On Jan 18, 11:33am, mar...@duskware.de (Martin Husemann) wrote: -- Subject: Re: CVS commit: src/external/bsd/file
| On Fri, Jan 17, 2014 at 11:32:29PM +0000, David Laight wrote: | > If the problem actually caused by gcc failing to pair all the conditionals? | > Compiling with 'clazz' a compile-time constant might show things. | | I don't think so, and I'll leave a final fix to Christos as maintainer. | | > Or, if memcpy() is defined in a header file and uses casts to optimise | > inlined copies of fixed sizes it might be that the pointer-aliasing | > rules mean that the actual structure might not have been written. | | The copy is of the full size of the relevant structure, but through a | (void*) pointer - sounds more like a gcc bug to me. | | > A possible solution to that is an asm statement with a "memory" | > constraint for the buffer areas either side of the actual copy. | | Since the warning is a false positive, I think we should not tamper with | the source too much, besides shutting up the warning via a pragma or whatever | (should work with push/pop, but even that is ugly). | | Christos? I don't know which memcpy is causing it in readelf.c... I'll try it. christos