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