Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / ASTMerge / struct / Inputs / struct1.c
bloba85aec70a84ce718e487424cc0b4156266c34565
1 typedef int Int;
2 typedef float Float;
4 // Matches
5 struct S0 {
6 Int field1;
7 Float field2;
8 };
10 struct S0 x0;
12 // Mismatch in field type
13 struct S1 {
14 Int field1;
15 int field2;
18 struct S1 x1;
20 // Mismatch in tag kind.
21 struct S2 { int i; float f; } x2;
23 // Missing fields
24 struct S3 { int i; float f; double d; } x3;
26 // Extra fields
27 struct S4 { int i; } x4;
29 // Bit-field matches
30 struct S5 { int i : 8; unsigned j : 8; } x5;
32 // Bit-field mismatch
33 struct S6 { int i : 8; unsigned j : 8; } x6;
35 // Bit-field mismatch
36 struct S7 { int i : 8; unsigned j : 8; } x7;
38 // Incomplete type
39 struct S8 *x8;
41 // Incomplete type
42 struct S9 { int i; float f; } *x9;
44 // Incomplete type
45 struct S10 *x10;
47 // Matches
48 struct ListNode {
49 int value;
50 struct ListNode *Next;
51 } xList;
53 // Mismatch due to struct used internally
54 struct DeepError {
55 int value;
56 struct DeeperError { int i; int f; } *Deeper;
57 } xDeep;
59 // Matches
60 struct {
61 Int i;
62 float f;
63 } x11;
65 // Matches
66 typedef struct {
67 Int i;
68 float f;
69 } S12;
71 S12 x12;
73 // Mismatch
74 typedef struct {
75 Float i; // Mismatch here.
76 float f;
77 } S13;
79 S13 x13;
81 // Matches
82 struct Unnamed {
83 union {
84 struct {
85 int i;
86 } S;
87 struct {
88 float i;
89 } R;
90 } U;
91 } x14;
93 // Matches
94 struct DeepUnnamed {
95 union {
96 union {
97 struct {
98 long i;
99 } S;
100 struct {
101 int i;
102 } R;
103 } U1;
104 union {
105 struct {
106 long i;
107 } S;
108 struct {
109 float i;
110 } T;
111 } U2;
112 } U;
113 struct {
114 long i;
115 } V;
116 } x15;
118 // Mismatch due to unnamed struct used internally
119 struct DeepUnnamedError {
120 union {
121 union {
122 struct {
123 long i;
124 } S;
125 struct {
126 int i;
127 } R;
128 } U1;
129 union {
130 struct {
131 long i; // Mismatch here.
132 } S;
133 struct {
134 float i;
135 } T;
136 } U2;
137 } U;
138 struct {
139 long i;
140 } V;
141 } x16;