Introduce LLVM_STATIC_ASSERT macro, which expands to C/C++'s static_assert on compile...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 22 Mar 2013 03:10:51 +0000 (03:10 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 22 Mar 2013 03:10:51 +0000 (03:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177699 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Compiler.h

index 25f42a98e7dec07caa0d5275374c6760ef85ea9a..13d057be049f3675bf60f180198402b549672e3e 100644 (file)
 #define LLVM_EXPLICIT
 #endif
 
+/// \macro LLVM_STATIC_ASSERT
+/// \brief Expands to C/C++'s static_assert on compilers which support it.
+#if __has_feature(cxx_static_assert)
+# define LLVM_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
+#elif __has_feature(c_static_assert)
+# define LLVM_STATIC_ASSERT(expr, msg) _Static_assert(expr, msg)
+#else
+# define LLVM_STATIC_ASSERT(expr, msg)
+#endif
+
 #endif