]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
qemu/int128: Re-shuffle Int128Alias members
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 1 May 2023 20:46:25 +0000 (21:46 +0100)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 2 May 2023 20:05:45 +0000 (13:05 -0700)
Clang 14, with --enable-tcg-interpreter errors with

include/qemu/int128.h:487:16: error: alignment of field 'i' (128 bits)
  does not match the alignment of the first field in transparent union;
  transparent_union attribute ignored [-Werror,-Wignored-attributes]
    __int128_t i;
               ^
include/qemu/int128.h:486:12: note: alignment of first field is 64 bits
    Int128 s;
           ^
1 error generated.

By placing the __uint128_t member first, this is avoided.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230501204625.277361-1-richard.henderson@linaro.org>

include/qemu/int128.h

index f62a46b48c78f82f1a865557ae73a615ea96eb12..9e46cfaefc75534acf860fdab0dae85ac378e1df 100644 (file)
@@ -483,9 +483,9 @@ static inline void bswap128s(Int128 *s)
  */
 #ifdef CONFIG_INT128
 typedef union {
-    Int128 s;
-    __int128_t i;
     __uint128_t u;
+    __int128_t i;
+    Int128 s;
 } Int128Alias __attribute__((transparent_union));
 #else
 typedef Int128 Int128Alias;