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