diff --git a/upbc/protoc-gen-upb.cc b/upbc/protoc-gen-upb.cc index 13df6da2e0..f16188653f 100644 --- a/upbc/protoc-gen-upb.cc +++ b/upbc/protoc-gen-upb.cc @@ -920,8 +920,12 @@ bool TryFillTableEntry(const protobuf::Descriptor* message, case protobuf::FieldDescriptor::TYPE_BOOL: type = "b1"; break; - case protobuf::FieldDescriptor::TYPE_INT32: case protobuf::FieldDescriptor::TYPE_ENUM: + if (field->file()->syntax() == protobuf::FileDescriptor::SYNTAX_PROTO2) { + // We don't have the means to test proto2 enum fields for valid values. + return false; + } + case protobuf::FieldDescriptor::TYPE_INT32: case protobuf::FieldDescriptor::TYPE_UINT32: type = "v4"; break;