diff --git a/src/google/protobuf/map_entry_lite.h b/src/google/protobuf/map_entry_lite.h index 8de11766d2..52746da595 100644 --- a/src/google/protobuf/map_entry_lite.h +++ b/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; diff --git a/src/google/protobuf/stubs/port.h b/src/google/protobuf/stubs/port.h index c86cf35be2..8a5d1a13e8 100644 --- a/src/google/protobuf/stubs/port.h +++ b/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.