1 // It is important to have a definition *after* non-definition declaration.
2 typedef struct _Buffer Buffer;
3 struct _Buffer {
4   int a;
5   int b;
6   int c;
7 };
8 
9 typedef struct _AnonymousStruct AnonymousStruct;
10 struct _AnonymousStruct {
11   struct {
12     int x;
13     int y;
14   };
15 };
16 
17 typedef union _UnionRecord UnionRecord;
18 union _UnionRecord {
19   int u: 2;
20   int v: 4;
21 };
22