From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 19 Sep 2017 10:09:31 -0700 Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang clang pretends to be gcc 4.2.0 and therefore the code does not use __builtin_bswap16 but tries to synthesize it Signed-off-by: Khem Raj --- Upstream-Status: Submitted include/flatbuffers/base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index c73fb2d..13e8fac 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -156,7 +156,7 @@ template T EndianSwap(T t) { #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64 #else - #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 + #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__) // __builtin_bswap16 was missing prior to GCC 4.8. #define FLATBUFFERS_BYTESWAP16(x) \ static_cast(__builtin_bswap32(static_cast(x) << 16)) -- 2.14.1