From 86ba70ec411fa3aafc8393700e5f085c89f6c992 Mon Sep 17 00:00:00 2001 From: Bruce Dawson Date: Thu, 29 Oct 2015 12:41:29 -0700 Subject: Get VS 2015 to use const int definitions VC++ up to VS 2015 RTM does not require explicit storage allocation for static const integers declared in classes. VS 2015 Update 1 requires these storage definitions in some cases. It's unclear exactly what cases - simple tests work with and without the explicit storage allocation. Many previous versions of VC++ have theoretically *allowed* a definition to supply storage, but tests on VC++ 2013 show that this doesn't actually work correctly - it leads to duplicate definition errors in Chromium. So, the change is scoped to VS 2015 only. This change also updates the generated files to match the new generator. TL;DR - this change is necessary in order for Chromium to build with VS 2015 Update 1. --- src/google/protobuf/compiler/plugin.pb.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/google/protobuf/compiler/plugin.pb.cc') diff --git a/src/google/protobuf/compiler/plugin.pb.cc b/src/google/protobuf/compiler/plugin.pb.cc index 0792d875..266c2975 100644 --- a/src/google/protobuf/compiler/plugin.pb.cc +++ b/src/google/protobuf/compiler/plugin.pb.cc @@ -172,11 +172,11 @@ static void MergeFromFail(int line) { // =================================================================== -#ifndef _MSC_VER +#if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CodeGeneratorRequest::kFileToGenerateFieldNumber; const int CodeGeneratorRequest::kParameterFieldNumber; const int CodeGeneratorRequest::kProtoFileFieldNumber; -#endif // !_MSC_VER +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CodeGeneratorRequest::CodeGeneratorRequest() : ::google::protobuf::Message(), _internal_metadata_(NULL) { @@ -656,11 +656,11 @@ CodeGeneratorRequest::proto_file() const { // =================================================================== -#ifndef _MSC_VER +#if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CodeGeneratorResponse_File::kNameFieldNumber; const int CodeGeneratorResponse_File::kInsertionPointFieldNumber; const int CodeGeneratorResponse_File::kContentFieldNumber; -#endif // !_MSC_VER +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CodeGeneratorResponse_File::CodeGeneratorResponse_File() : ::google::protobuf::Message(), _internal_metadata_(NULL) { @@ -1021,10 +1021,10 @@ void CodeGeneratorResponse_File::InternalSwap(CodeGeneratorResponse_File* other) // ------------------------------------------------------------------- -#ifndef _MSC_VER +#if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CodeGeneratorResponse::kErrorFieldNumber; const int CodeGeneratorResponse::kFileFieldNumber; -#endif // !_MSC_VER +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CodeGeneratorResponse::CodeGeneratorResponse() : ::google::protobuf::Message(), _internal_metadata_(NULL) { -- cgit v1.2.3