Răsfoiți Sursa

Move the definition of GOOGLE_FALLTHROUGH_INTENDED to port.h

teboring 10 ani în urmă
părinte
comite
5da3fb0666
2 a modificat fișierele cu 12 adăugiri și 13 ștergeri
  1. 0 12
      src/google/protobuf/map_entry_lite.h
  2. 12 1
      src/google/protobuf/stubs/port.h

+ 0 - 12
src/google/protobuf/map_entry_lite.h

@@ -162,19 +162,7 @@ class MapEntryLite : public MessageLite {
           if (!KeyWireHandler::Read(input, mutable_key())) return false;
           set_has_key();
           if (!input->ExpectTag(kValueTag)) break;
-          // BEGIN GOOGLE LOCAL MODIFICATION
-          //   Add __has_cpp_attribute and NaCl and Emscripten checks.
-#if defined(__clang__) && defined(__has_cpp_attribute) \
-    && !defined(GOOGLE_PROTOBUF_OS_APPLE)
-#if defined(GOOGLE_PROTOBUF_OS_NACL) || defined(EMSCRIPTEN)
-          [[clang::fallthrough]];
-#elif __has_cpp_attribute(clang::fallthrough)
-          [[clang::fallthrough]];
-#endif
-#else
           GOOGLE_FALLTHROUGH_INTENDED;
-#endif
-          // END GOOGLE LOCAL MODIFICATION
 
         case kValueTag:
           if (!ValueWireHandler::Read(input, mutable_value())) return false;

+ 12 - 1
src/google/protobuf/stubs/port.h

@@ -204,8 +204,19 @@ static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
 #define GOOGLE_SAFE_CONCURRENT_WRITES_END()
 #endif
 
+#if defined(__clang__) && defined(__has_cpp_attribute) \
+    && !defined(GOOGLE_PROTOBUF_OS_APPLE)
+# if defined(GOOGLE_PROTOBUF_OS_NACL) || defined(EMSCRIPTEN) || \
+     __has_cpp_attribute(clang::fallthrough)
+#  define GOOGLE_FALLTHROUGH_INTENDED [[clang::fallthrough]]
+# endif
+#endif
+
+#ifndef GOOGLE_FALLTHROUGH_INTENDED
+# define GOOGLE_FALLTHROUGH_INTENDED
+#endif
+
 #define GOOGLE_GUARDED_BY(x)
-#define GOOGLE_FALLTHROUGH_INTENDED
 #define GOOGLE_ATTRIBUTE_COLD
 
 // x86 and x86-64 can perform unaligned loads/stores directly.