Add GOOGLE_ATTRIBUTE_NOINLINE to GetArena() and GetMaybeArenaPointer() methods. This is to avoid "unresolved link" errors in MSVC 2015 during Release build
diff --git a/src/google/protobuf/message.cc b/src/google/protobuf/message.cc index 2f6416d..9a58678 100644 --- a/src/google/protobuf/message.cc +++ b/src/google/protobuf/message.cc
@@ -495,11 +495,19 @@ return prototype->New(arena); } template<> +#if defined(_MSC_VER) && (_MSC_VER >= 1900) +// Note: force noinline to workaround MSVC 2015 compiler bug, issue #240 +GOOGLE_ATTRIBUTE_NOINLINE +#endif google::protobuf::Arena* GenericTypeHandler<Message>::GetArena( Message* value) { return value->GetArena(); } template<> +#if defined(_MSC_VER) && (_MSC_VER >= 1900) +// Note: force noinline to workaround MSVC 2015 compiler bug, issue #240 +GOOGLE_ATTRIBUTE_NOINLINE +#endif void* GenericTypeHandler<Message>::GetMaybeArenaPointer( Message* value) { return value->GetMaybeArenaPointer();