1typedef int Int;
2typedef float Float;
3
4// Matches
5struct S0 {
6  Int field1;
7  Float field2;
8};
9
10struct S0 x0;
11
12// Mismatch in field type
13struct S1 {
14  Int field1;
15  int field2;
16};
17
18struct S1 x1;
19
20// Mismatch in tag kind.
21struct S2 { int i; float f; } x2;
22
23// Missing fields
24struct S3 { int i; float f; double d; } x3;
25
26// Extra fields
27struct S4 { int i; } x4;
28
29// Bit-field matches
30struct S5 { int i : 8; unsigned j : 8; } x5;
31
32// Bit-field mismatch
33struct S6 { int i : 8; unsigned j : 8; } x6;
34
35// Bit-field mismatch
36struct S7 { int i : 8; unsigned j : 8; } x7;
37
38// Incomplete type
39struct S8 *x8;
40
41// Incomplete type
42struct S9 { int i; float f; } *x9;
43
44// Incomplete type
45struct S10 *x10;
46
47// Matches
48struct ListNode {
49  int value;
50  struct ListNode *Next;
51} xList;
52
53// Mismatch due to struct used internally
54struct DeepError {
55  int value;
56  struct DeeperError { int i; int f; } *Deeper;
57} xDeep;
58
59// Matches
60struct {
61  Int i;
62  float f;
63} x11;
64