| typedef int Int; |
| typedef float Float; |
| |
| // Matches |
| struct S0 { |
| Int field1; |
| Float field2; |
| }; |
| |
| struct S0 x0; |
| |
| // Mismatch in field type |
| struct S1 { |
| Int field1; |
| int field2; |
| }; |
| |
| struct S1 x1; |
| |
| // Mismatch in tag kind. |
| struct S2 { int i; float f; } x2; |
| |
| // Missing fields |
| struct S3 { int i; float f; double d; } x3; |
| |
| // Extra fields |
| struct S4 { int i; } x4; |
| |
| // Bit-field matches |
| struct S5 { int i : 8; unsigned j : 8; } x5; |
| |
| // Bit-field mismatch |
| struct S6 { int i : 8; unsigned j : 8; } x6; |
| |
| // Bit-field mismatch |
| struct S7 { int i : 8; unsigned j : 8; } x7; |
| |
| // Incomplete type |
| struct S8 *x8; |
| |
| // Incomplete type |
| struct S9 { int i; float f; } *x9; |
| |
| // Incomplete type |
| struct S10 *x10; |
| |
| // Matches |
| struct ListNode { |
| int value; |
| struct ListNode *Next; |
| } xList; |
| |
| // Mismatch due to struct used internally |
| struct DeepError { |
| int value; |
| struct DeeperError { int i; int f; } *Deeper; |
| } xDeep; |
| |
| // Matches |
| struct { |
| Int i; |
| float f; |
| } x11; |