From: Aaron Ballman Date: Wed, 21 Aug 2019 20:00:41 +0000 (+0000) Subject: Revert r369549 as it broke the bots. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9d4313b967c81ce9837e37faa68884b95f494906;p=llvm Revert r369549 as it broke the bots. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/13605/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369569 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/Compiler.h b/include/llvm/Support/Compiler.h index e1f124379dd..43114ad3a43 100644 --- a/include/llvm/Support/Compiler.h +++ b/include/llvm/Support/Compiler.h @@ -16,9 +16,7 @@ #include "llvm/Config/llvm-config.h" -#ifdef __cplusplus #include -#endif #include #if defined(_MSC_VER) @@ -254,8 +252,10 @@ #define LLVM_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define LLVM_FALLTHROUGH [[gnu::fallthrough]] -#elif !defined(__cplusplus) && __has_attribute(fallthrough) -#define LLVM_FALLTHROUGH __attribute__((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 __has_cpp_attribute(clang::fallthrough) #define LLVM_FALLTHROUGH [[clang::fallthrough]] #else @@ -527,7 +527,6 @@ 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. @@ -570,5 +569,4 @@ inline void deallocate_buffer(void *Ptr, size_t Size, size_t Alignment) { } // End namespace llvm -#endif // __cplusplus #endif diff --git a/lib/Support/regcomp.c b/lib/Support/regcomp.c index ee2a1d87a26..ca283869be9 100644 --- a/lib/Support/regcomp.c +++ b/lib/Support/regcomp.c @@ -48,7 +48,6 @@ #include "regex2.h" #include "llvm/Config/config.h" -#include "llvm/Support/Compiler.h" /* character-class table */ static struct cclass { @@ -538,7 +537,7 @@ p_ere_exp(struct parse *p) break; case '{': /* okay as ordinary except if digit follows */ REQUIRE(!MORE() || !isdigit((uch)PEEK()), REG_BADRPT); - LLVM_FALLTHROUGH; + /* fall through */ default: ordinary(p, c); break; @@ -734,7 +733,7 @@ p_simp_re(struct parse *p, break; case '*': REQUIRE(starordinary, REG_BADRPT); - LLVM_FALLTHROUGH; + /* fall through */ default: ordinary(p, (char)c); break; @@ -1636,7 +1635,7 @@ findmust(struct parse *p, struct re_guts *g) return; } } while (OP(s) != O_QUEST && OP(s) != O_CH); - LLVM_FALLTHROUGH; + /* fall through */ default: /* things that break a sequence */ if (newlen > g->mlen) { /* ends one */ start = newstart;