Add missing #define for submsg callbacks, add regression test (#472)
diff --git a/pb.h b/pb.h
index 3fc6c5e..8bf00e3 100644
--- a/pb.h
+++ b/pb.h
@@ -746,6 +746,7 @@
 #define PB_FIELDINFO_WIDTH_INT32     1
 #define PB_FIELDINFO_WIDTH_INT64     1
 #define PB_FIELDINFO_WIDTH_MESSAGE   2
+#define PB_FIELDINFO_WIDTH_MSG_W_CB  2
 #define PB_FIELDINFO_WIDTH_SFIXED32  1
 #define PB_FIELDINFO_WIDTH_SFIXED64  1
 #define PB_FIELDINFO_WIDTH_SINT32    1
diff --git a/tests/regression/issue_472/SConscript b/tests/regression/issue_472/SConscript
new file mode 100644
index 0000000..64e8678
--- /dev/null
+++ b/tests/regression/issue_472/SConscript
@@ -0,0 +1,7 @@
+# Regression test for issue #472: submsg_callback fails to compile in Atmel Studio
+
+Import("env")
+
+env.NanopbProto("test")
+env.Object("test.pb.c")
+
diff --git a/tests/regression/issue_472/test.proto b/tests/regression/issue_472/test.proto
new file mode 100644
index 0000000..c3597cb
--- /dev/null
+++ b/tests/regression/issue_472/test.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+
+import "nanopb.proto";
+
+message FirmwareUpdateCommand {
+	string version = 1;
+	uint32 size = 2;
+}
+
+message CommandWrapperMessage {
+	option (nanopb_msgopt).submsg_callback = true;
+
+    oneof payload {
+		FirmwareUpdateCommand firmware_update = 1;
+    }
+}