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