OSDN Git Service

clang: ?e64_to_cpu() and cpu_to_?e64(): cast to uint64_t.
authorPeter Jones <pjones@redhat.com>
Thu, 17 May 2018 21:57:10 +0000 (17:57 -0400)
committerPeter Jones <pmjones@gmail.com>
Mon, 21 May 2018 13:27:22 +0000 (09:27 -0400)
On x86_64, clang makes __builtin_bswap64() return "unsigned long"
instead of "unsigned long long", so using PRIx64 complains all over the
place.  Casting to uint64_t satisfies both compilers.

Signed-off-by: Peter Jones <pjones@redhat.com>
src/efivar_endian.h

index 24ec08e..b8e6a31 100644 (file)
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 #define cpu_to_le16(x) (x)
 #define cpu_to_le32(x) (x)
-#define cpu_to_le64(x) (x)
+#define cpu_to_le64(x) ((uint64_t)x)
 #define le16_to_cpu(x) (x)
 #define le32_to_cpu(x) (x)
-#define le64_to_cpu(x) (x)
+#define le64_to_cpu(x) ((uint64_t)x)
 #define cpu_to_be16(x) __builtin_bswap16(x)
 #define cpu_to_be32(x) __builtin_bswap32(x)
-#define cpu_to_be64(x) __builtin_bswap64(x)
+#define cpu_to_be64(x) ((uint64_t)__builtin_bswap64(x))
 #define be16_to_cpu(x) __builtin_bswap16(x)
 #define be32_to_cpu(x) __builtin_bswap32(x)
-#define be64_to_cpu(x) __builtin_bswap64(x)
+#define be64_to_cpu(x) ((uint64_t)__builtin_bswap64(x))
 #else
 #define cpu_to_be16(x) (x)
 #define cpu_to_be32(x) (x)
-#define cpu_to_be64(x) (x)
+#define cpu_to_be64(x) ((uint64_t)x)
 #define be16_to_cpu(x) (x)
 #define be32_to_cpu(x) (x)
-#define be64_to_cpu(x) (x)
+#define be64_to_cpu(x) ((uint64_t)x)
 #define cpu_to_le16(x) __builtin_bswap16(x)
 #define cpu_to_le32(x) __builtin_bswap32(x)
-#define cpu_to_le64(x) __builtin_bswap64(x)
+#define cpu_to_le64(x) ((uint64_t)__builtin_bswap64(x))
 #define le16_to_cpu(x) __builtin_bswap16(x)
 #define le32_to_cpu(x) __builtin_bswap32(x)
-#define le64_to_cpu(x) __builtin_bswap64(x)
+#define le64_to_cpu(x) ((uint64_t)__builtin_bswap64(x))
 #endif
 
 #endif /* _EFIVAR_ENDIAN_H */