On 20/03/13 08:34, Bo Yang wrote:
Signed-off-by: Bo Yang<[email protected]> --- src/arch/i386/include/bits/byteswap.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)diff --git a/src/arch/i386/include/bits/byteswap.h b/src/arch/i386/include/bits/byteswap.h index f3d30a2..0d9cb96 100644 --- a/src/arch/i386/include/bits/byteswap.h +++ b/src/arch/i386/include/bits/byteswap.h @@ -53,8 +53,8 @@ __bswap_variable_64 ( uint64_t x ) { static inline __attribute__ (( always_inline )) void __bswap_64s ( uint64_t *x ) { struct { - uint32_t low; - uint32_t high; + uint32_t __attribute__ (( may_alias )) low; + uint32_t __attribute__ (( may_alias )) high; } __attribute__ (( may_alias )) *dwords = ( ( void * ) x ); uint32_t discard;
I'm puzzled by this; as far as I know, the may_alias which is already present on the structure type should be sufficient. I have tested gcc versions 4.3.0, 4.3.1, 4.3.2, 4.3.3, 4.3.4 and 4.3.5 (using the GCC compile farm) and have not been able to reproduce any problem with the original, unmodified code.
Could you let me know precisely which gcc version is causing problems, and what the error message is?
Thanks, Michael _______________________________________________ ipxe-devel mailing list [email protected] https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

