Move the definition of GOOGLE_FALLTHROUGH_INTENDED to port.h

pull/652/head
teboring 9 years ago
parent f642c5cfdd
commit 5da3fb0666
  1. 12
      src/google/protobuf/map_entry_lite.h
  2. 13
      src/google/protobuf/stubs/port.h

@ -162,19 +162,7 @@ class MapEntryLite : public MessageLite {
if (!KeyWireHandler::Read(input, mutable_key())) return false; if (!KeyWireHandler::Read(input, mutable_key())) return false;
set_has_key(); set_has_key();
if (!input->ExpectTag(kValueTag)) break; 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; GOOGLE_FALLTHROUGH_INTENDED;
#endif
// END GOOGLE LOCAL MODIFICATION
case kValueTag: case kValueTag:
if (!ValueWireHandler::Read(input, mutable_value())) return false; if (!ValueWireHandler::Read(input, mutable_value())) return false;

@ -204,8 +204,19 @@ static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
#define GOOGLE_SAFE_CONCURRENT_WRITES_END() #define GOOGLE_SAFE_CONCURRENT_WRITES_END()
#endif #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_GUARDED_BY(x)
#define GOOGLE_FALLTHROUGH_INTENDED
#define GOOGLE_ATTRIBUTE_COLD #define GOOGLE_ATTRIBUTE_COLD
// x86 and x86-64 can perform unaligned loads/stores directly. // x86 and x86-64 can perform unaligned loads/stores directly.

Loading…
Cancel
Save