1 #include <stdarg.h>
2 #include <stdbool.h>
3 #include <stdint.h>
4 #include <stdlib.h>
5 
6 typedef struct {
7   bool a;
8   int32_t b;
9 } Foo;
10 
11 enum Bar_Tag {
12   Baz,
13   Bazz,
14   FooNamed,
15   FooParen,
16 };
17 typedef uint8_t Bar_Tag;
18 
19 typedef struct {
20   Bar_Tag tag;
21   Foo named;
22 } Bazz_Body;
23 
24 typedef struct {
25   Bar_Tag tag;
26   int32_t different;
27   uint32_t fields;
28 } FooNamed_Body;
29 
30 typedef struct {
31   Bar_Tag tag;
32   int32_t _0;
33   Foo _1;
34 } FooParen_Body;
35 
36 typedef union {
37   Bar_Tag tag;
38   Bazz_Body bazz;
39   FooNamed_Body foo_named;
40   FooParen_Body foo_paren;
41 } Bar;
42 
43 Foo root(Bar aBar);
44