diff options
| author | George Rimar <grimar@accesssoftek.com> | 2017-05-12 06:53:48 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2017-05-12 06:53:48 +0000 |
| commit | 0c1f598cfa39091c575fc9f1df128fd2236bc506 (patch) | |
| tree | 4d67d868b68b9d56fd93a14831b64bd9c33e50af /llvm/include | |
| parent | d1ec738502b24454f98bee9cd1206aa2854a4eb8 (diff) | |
| download | bcm5719-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.h | 2 |
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. |

