Support: Introduce LLVM_FALLTHROUGH macro.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 20 May 2015 02:44:14 +0000 (02:44 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 20 May 2015 02:44:14 +0000 (02:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237766 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Compiler.h

index c81fbaff9dba89f4ac5966a50efb432131415c45..4da7fd48fa58883475f453ae96dc5a604d33d81c 100644 (file)
 # define __has_attribute(x) 0
 #endif
 
+#ifndef __has_cpp_attribute
+# define __has_cpp_attribute(x) 0
+#endif
+
 #ifndef __has_builtin
 # define __has_builtin(x) 0
 #endif
 #define LLVM_THREAD_LOCAL
 #endif
 
+/// \macro LLVM_FALLTHROUGH
+/// \brief Marks an empty statement preceding a deliberate switch fallthrough.
+#if __has_cpp_attribute(clang::fallthrough)
+#define LLVM_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define LLVM_FALLTHROUGH
+#endif
+
 #endif