From f0d2747df165dca20b815615fafc03bba315d23b Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Thu, 17 Mar 2022 14:56:04 +0300 Subject: [PATCH] use _Static_assert for SDL_COMPILE_TIME_ASSERT(), when available --- include/SDL_stdinc.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h index c0d194c4a..4554f9e71 100644 --- a/include/SDL_stdinc.h +++ b/include/SDL_stdinc.h @@ -354,8 +354,14 @@ typedef uint64_t Uint64; #endif #endif /* SDL_DISABLE_ANALYZE_MACROS */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) +#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x); +#elif defined(__cplusplus) && (__cplusplus >= 201103L) +#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x); +#else /* universal, but may trigger -Wunused-local-typedefs */ #define SDL_COMPILE_TIME_ASSERT(name, x) \ typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] +#endif /** \cond */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);