diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 4c01502c0da99396fdbb0bdeb1e50967a073d4d4..7ee06523ab51d87c2bf0fbb27cdfa0a4f934be10 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 a8e557bea3cd1bbddec8f682373bf135443e9091..cdcffeb721acb73607a3adc5a46308916cbb3718 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; + } +} +