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