Status: New
Labels: Type-Defect Priority-Medium

New issue 179 by iiro.hietala: Visual C++ error C1091 when compiling protoc generated code with over 64k descriptor

What steps will reproduce the problem?

1. Extended EnumValueOptions with a custom string as follows:

extend google.protobuf.EnumValueOptions {
  optional string message = 50000;

2. Use the string option in multiple enumeration values in single
enumeration proto like this:

enum ExampleEnum
ENUMERATION_OPTION_1 = 1 [(message) = "Enumeration option 1"];
ENUMERATION_OPTION_2 = 2 [(message) = "Enumeration option 2"];
ENUMERATION_OPTION_3 = 3 [(message) = "Enumeration option 3"];
ENUMERATION_OPTION_4 = 4 [(message) = "Enumeration option 4"];
ENUMERATION_OPTION_9999 = 9999 [(message) = "Enumeration option 9999"];

3. Generate the C++ sources from .proto and then compile the generated

NOTE: The attached file contains the example VS2008 project.

What is the expected output? What do you see instead?

When compiling the libraries that use the protoc generated sources the
Visual C++ compiler will give the following error:

"fatal error C1091: compiler limit: string exceeds 65535 bytes in length"

Expected: The protoc generated source code compiles

Actual: The code will not compile due to C1091 error.

What version of the product are you using? On what operating system?

Protocol Buffers 2.3.0, Visual Studio 2005, Visual Studio 2008, Windows XP

Please provide any additional information below:

Also attempted this on Linux environment. With GCC the project compiles

Attachments:  5.7 MB

You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:

You received this message because you are subscribed to the Google Groups "Protocol 
Buffers" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to