xref: /aosp_15_r20/external/clang/test/ASTMerge/Inputs/struct2.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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