summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgenerator/nanopb_generator.py3
-rw-r--r--tests/options/options.proto9
2 files changed, 12 insertions, 0 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index 4c01502c..7ee06523 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -587,6 +587,9 @@ class OneOf(Field):
self.name = oneof_desc.name
self.ctype = 'union'
self.fields = []
+ self.allocation = 'ONEOF'
+ self.default = None
+ self.rules = 'ONEOF'
def add_field(self, field):
if field.allocation == 'CALLBACK':
diff --git a/tests/options/options.proto b/tests/options/options.proto
index a8e557be..cdcffeb7 100644
--- a/tests/options/options.proto
+++ b/tests/options/options.proto
@@ -75,3 +75,12 @@ message SkippedMessage
option (nanopb_msgopt).skip_message = true;
required int32 foo = 1;
}
+
+// Message with oneof field
+message OneofMessage
+{
+ oneof foo {
+ int32 bar = 1;
+ }
+}
+