diff options
author | Nathan Huckleberry <nhuck@google.com> | 2019-08-21 17:07:43 +0000 |
---|---|---|
committer | Nathan Huckleberry <nhuck@google.com> | 2019-08-21 17:07:43 +0000 |
commit | 01a413695c980613c8d737e7bba79131a6adc8a5 (patch) | |
tree | 1ae23c81a7b24a1e5a06227b9ea5738ebd13448a | |
parent | 7425179fee9b4ed1ff6d366ee06487f05a1c0ab3 (diff) | |
download | bcm5719-llvm-01a413695c980613c8d737e7bba79131a6adc8a5.tar.gz bcm5719-llvm-01a413695c980613c8d737e7bba79131a6adc8a5.zip |
Fix -Wimplicit-fallthrough warnings in regcomp.c
Summary:
Since clang does not support comment style fallthrough annotations
these should be switched.
Reviewers: aaron.ballman, nickdesaulniers, xbolva00
Reviewed By: aaron.ballman, nickdesaulniers, xbolva00
Subscribers: xbolva00, nickdesaulniers, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66487
llvm-svn: 369549
-rw-r--r-- | llvm/include/llvm/Support/Compiler.h | 10 | ||||
-rw-r--r-- | llvm/lib/Support/regcomp.c | 7 |
2 files changed, 10 insertions, 7 deletions
diff --git a/llvm/include/llvm/Support/Compiler.h b/llvm/include/llvm/Support/Compiler.h index 43114ad3a43..e1f124379dd 100644 --- a/llvm/include/llvm/Support/Compiler.h +++ b/llvm/include/llvm/Support/Compiler.h @@ -16,7 +16,9 @@ #include "llvm/Config/llvm-config.h" +#ifdef __cplusplus #include <new> +#endif #include <stddef.h> #if defined(_MSC_VER) @@ -252,10 +254,8 @@ #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. -#define LLVM_FALLTHROUGH +#elif !defined(__cplusplus) && __has_attribute(fallthrough) +#define LLVM_FALLTHROUGH __attribute__((fallthrough)) #elif __has_cpp_attribute(clang::fallthrough) #define LLVM_FALLTHROUGH [[clang::fallthrough]] #else @@ -527,6 +527,7 @@ void AnnotateIgnoreWritesEnd(const char *file, int line); #define LLVM_ENABLE_EXCEPTIONS 1 #endif +#ifdef __cplusplus namespace llvm { /// Allocate a buffer of memory with the given size and alignment. @@ -569,4 +570,5 @@ inline void deallocate_buffer(void *Ptr, size_t Size, size_t Alignment) { } // End namespace llvm +#endif // __cplusplus #endif diff --git a/llvm/lib/Support/regcomp.c b/llvm/lib/Support/regcomp.c index ca283869be9..ee2a1d87a26 100644 --- a/llvm/lib/Support/regcomp.c +++ b/llvm/lib/Support/regcomp.c @@ -48,6 +48,7 @@ #include "regex2.h" #include "llvm/Config/config.h" +#include "llvm/Support/Compiler.h" /* character-class table */ static struct cclass { @@ -537,7 +538,7 @@ p_ere_exp(struct parse *p) break; case '{': /* okay as ordinary except if digit follows */ REQUIRE(!MORE() || !isdigit((uch)PEEK()), REG_BADRPT); - /* fall through */ + LLVM_FALLTHROUGH; default: ordinary(p, c); break; @@ -733,7 +734,7 @@ p_simp_re(struct parse *p, break; case '*': REQUIRE(starordinary, REG_BADRPT); - /* fall through */ + LLVM_FALLTHROUGH; default: ordinary(p, (char)c); break; @@ -1635,7 +1636,7 @@ findmust(struct parse *p, struct re_guts *g) return; } } while (OP(s) != O_QUEST && OP(s) != O_CH); - /* fall through */ + LLVM_FALLTHROUGH; default: /* things that break a sequence */ if (newlen > g->mlen) { /* ends one */ start = newstart; |