summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2017-05-12 06:53:48 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2017-05-12 06:53:48 +0000
commit0c1f598cfa39091c575fc9f1df128fd2236bc506 (patch)
tree4d67d868b68b9d56fd93a14831b64bd9c33e50af /llvm/include
parentd1ec738502b24454f98bee9cd1206aa2854a4eb8 (diff)
downloadbcm5719-llvm-0c1f598cfa39091c575fc9f1df128fd2236bc506.tar.gz
bcm5719-llvm-0c1f598cfa39091c575fc9f1df128fd2236bc506.zip
[Support/Compiler.h] - Use gnu::fallthrough for LLVM_FALLTHROUGH when available.
I tried to compile LLD using GCC 7.1.0 and got warnings like "warning: this statement may fall through [-Wimplicit-fallthrough=]" (some more details are here: D32907) GCC's __cplusplus value is 201402L by default, so macro expands to nothing, though GCC 7 has support for [[fallthrough]]. Patch uses gnu::fallthrough when it is available and fixes warning I am observing. Initial idea of way to fix belongs to Davide Italiano. Differential revision: https://reviews.llvm.org/D33036 llvm-svn: 302878
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Support/Compiler.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/include/llvm/Support/Compiler.h b/llvm/include/llvm/Support/Compiler.h
index a29240d35be..be9e4654001 100644
--- a/llvm/include/llvm/Support/Compiler.h
+++ b/llvm/include/llvm/Support/Compiler.h
@@ -227,6 +227,8 @@
/// LLVM_FALLTHROUGH - Mark fallthrough cases in switch statements.
#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
#define LLVM_FALLTHROUGH [[fallthrough]]
+#elif __has_cpp_attribute(gnu::fallthrough)
+#define LLVM_FALLTHROUGH [[gnu::fallthrough]]
#elif !__cplusplus
// Workaround for llvm.org/PR23435, since clang 3.6 and below emit a spurious
// error when __has_cpp_attribute is given a scoped attribute in C mode.
OpenPOWER on IntegriCloud