Revert r369549 as it broke the bots.
authorAaron Ballman <aaron@aaronballman.com>
Wed, 21 Aug 2019 20:00:41 +0000 (20:00 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Wed, 21 Aug 2019 20:00:41 +0000 (20:00 +0000)
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/13605/

llvm-svn: 369569

llvm/include/llvm/Support/Compiler.h
llvm/lib/Support/regcomp.c

index e1f1243..43114ad 100644 (file)
@@ -16,9 +16,7 @@
 
 #include "llvm/Config/llvm-config.h"
 
-#ifdef __cplusplus
 #include <new>
-#endif
 #include <stddef.h>
 
 #if defined(_MSC_VER)
 #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
index ee2a1d8..ca28386 100644 (file)
@@ -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;