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