aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/endiantest.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/common/endiantest.h b/common/endiantest.h
index 0a20eb91..893653bd 100644
--- a/common/endiantest.h
+++ b/common/endiantest.h
@@ -4,11 +4,12 @@
#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__)
#define IS_LITTLE_ENDIAN (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
#else
-static const union {
- unsigned int u;
- unsigned char b[sizeof(unsigned int)];
-} EndianTest = { 1 };
-#define IS_LITTLE_ENDIAN (EndianTest.b[0] == 1)
+constexpr inline bool EndianTest() noexcept
+{
+ constexpr int test_val{1};
+ return static_cast<const char&>(test_val);
+}
+#define IS_LITTLE_ENDIAN (EndianTest())
#endif
#endif /* AL_ENDIANTEST_H */