mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r17465) -Codechange: use builtin static_assert() for assert_compile() if available
This commit is contained in:
parent
434693b838
commit
2e2d00bee7
10
src/stdafx.h
10
src/stdafx.h
|
@ -301,12 +301,16 @@ typedef unsigned char byte;
|
|||
#define PERSONAL_DIR ""
|
||||
#endif
|
||||
|
||||
/* Compile time assertions, disabled for OS/2 or GCC < 3.4 (GCC < 3 isn't supported anymore) */
|
||||
#if defined(__OS2__) || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ < 4)
|
||||
/* Compile time assertions. Prefer c++0x static_assert() */
|
||||
#if defined(__STDCXX_VERSION__) || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(static_assert)
|
||||
/* __STDCXX_VERSION__ is c++0x feature macro, __GXX_EXPERIMENTAL_CXX0X__ is used by gcc, __GXX_EXPERIMENTAL_CPP0X__ by icc */
|
||||
#define assert_compile(expr) static_assert(expr, #expr )
|
||||
#elif defined(__OS2__) || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ < 4)
|
||||
/* Disabled for OS/2 or GCC < 3.4 (GCC < 3 isn't supported anymore) */
|
||||
#define assert_compile(expr)
|
||||
#else
|
||||
#define assert_compile(expr) extern const int __ct_assert__[1 - 2 * !(expr)] UNUSED
|
||||
#endif /* __OS2__ */
|
||||
#endif
|
||||
|
||||
/* Check if the types have the bitsizes like we are using them */
|
||||
assert_compile(sizeof(uint64) == 8);
|
||||
|
|
Loading…
Reference in New Issue