• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-tblgen %s | FileCheck %s
2// XFAIL: vg_leak
3
4class Set<int i = 0, int j = 0, int k = 0> {
5  int I = i;
6  int J = j;
7  int K = k;
8}
9
10foreach i = [1, 2, 3] in {
11  def I1_#i : Set<i>;
12  foreach j = [1, 2, 3] in {
13    def I1_#i#_J1_#j : Set<i, j>;
14  }
15  def I2_#i : Set<i>;
16  foreach j = [4, 5, 6] in {
17    foreach k = [1, 2, 3] in {
18      def I3_#i#_J2_#j#_K1_#k : Set<i, j, k>;
19    }
20    def I4_#i#_J3_#j : Set<i, j>;
21  }
22}
23
24// CHECK: def I1_1
25// CHECK: int I = 1;
26// CHECK: int J = 0;
27// CHECK: int K = 0;
28
29// CHECK: def I1_1_J1_1
30// CHECK: int I = 1;
31// CHECK: int J = 1;
32// CHECK: int K = 0;
33
34// CHECK: def I1_1_J1_2
35// CHECK: int I = 1;
36// CHECK: int J = 2;
37// CHECK: int K = 0;
38
39// CHECK: def I1_1_J1_3
40// CHECK: int I = 1;
41// CHECK: int J = 3;
42// CHECK: int K = 0;
43
44// CHECK: def I1_2
45// CHECK: int I = 2;
46// CHECK: int J = 0;
47// CHECK: int K = 0;
48
49// CHECK: def I1_2_J1_1
50// CHECK: int I = 2;
51// CHECK: int J = 1;
52// CHECK: int K = 0;
53
54// CHECK: def I1_2_J1_2
55// CHECK: int I = 2;
56// CHECK: int J = 2;
57// CHECK: int K = 0;
58
59// CHECK: def I1_2_J1_3
60// CHECK: int I = 2;
61// CHECK: int J = 3;
62// CHECK: int K = 0;
63
64// CHECK: def I1_3
65// CHECK: int I = 3;
66// CHECK: int J = 0;
67// CHECK: int K = 0;
68
69// CHECK: def I1_3_J1_1
70// CHECK: int I = 3;
71// CHECK: int J = 1;
72// CHECK: int K = 0;
73
74// CHECK: def I1_3_J1_2
75// CHECK: int I = 3;
76// CHECK: int J = 2;
77// CHECK: int K = 0;
78
79// CHECK: def I1_3_J1_3
80// CHECK: int I = 3;
81// CHECK: int J = 3;
82// CHECK: int K = 0;
83
84// CHECK: def I2_1
85// CHECK: int I = 1;
86// CHECK: int J = 0;
87// CHECK: int K = 0;
88
89// CHECK: def I2_2
90// CHECK: int I = 2;
91// CHECK: int J = 0;
92// CHECK: int K = 0;
93
94// CHECK: def I2_3
95// CHECK: int I = 3;
96// CHECK: int J = 0;
97// CHECK: int K = 0;
98
99// CHECK: def I3_1_J2_4_K1_1
100// CHECK: int I = 1;
101// CHECK: int J = 4;
102// CHECK: int K = 1;
103
104// CHECK: def I3_1_J2_4_K1_2
105// CHECK: int I = 1;
106// CHECK: int J = 4;
107// CHECK: int K = 2;
108
109// CHECK: def I3_1_J2_4_K1_3
110// CHECK: int I = 1;
111// CHECK: int J = 4;
112// CHECK: int K = 3;
113
114// CHECK: def I3_1_J2_5_K1_1
115// CHECK: int I = 1;
116// CHECK: int J = 5;
117// CHECK: int K = 1;
118
119// CHECK: def I3_1_J2_5_K1_2
120// CHECK: int I = 1;
121// CHECK: int J = 5;
122// CHECK: int K = 2;
123
124// CHECK: def I3_1_J2_5_K1_3
125// CHECK: int I = 1;
126// CHECK: int J = 5;
127// CHECK: int K = 3;
128
129// CHECK: def I3_1_J2_6_K1_1
130// CHECK: int I = 1;
131// CHECK: int J = 6;
132// CHECK: int K = 1;
133
134// CHECK: def I3_1_J2_6_K1_2
135// CHECK: int I = 1;
136// CHECK: int J = 6;
137// CHECK: int K = 2;
138
139// CHECK: def I3_1_J2_6_K1_3
140// CHECK: int I = 1;
141// CHECK: int J = 6;
142// CHECK: int K = 3;
143
144// CHECK: def I3_2_J2_4_K1_1
145// CHECK: int I = 2;
146// CHECK: int J = 4;
147// CHECK: int K = 1;
148
149// CHECK: def I3_2_J2_4_K1_2
150// CHECK: int I = 2;
151// CHECK: int J = 4;
152// CHECK: int K = 2;
153
154// CHECK: def I3_2_J2_4_K1_3
155// CHECK: int I = 2;
156// CHECK: int J = 4;
157// CHECK: int K = 3;
158
159// CHECK: def I3_2_J2_5_K1_1
160// CHECK: int I = 2;
161// CHECK: int J = 5;
162// CHECK: int K = 1;
163
164// CHECK: def I3_2_J2_5_K1_2
165// CHECK: int I = 2;
166// CHECK: int J = 5;
167// CHECK: int K = 2;
168
169// CHECK: def I3_2_J2_5_K1_3
170// CHECK: int I = 2;
171// CHECK: int J = 5;
172// CHECK: int K = 3;
173
174// CHECK: def I3_2_J2_6_K1_1
175// CHECK: int I = 2;
176// CHECK: int J = 6;
177// CHECK: int K = 1;
178
179// CHECK: def I3_2_J2_6_K1_2
180// CHECK: int I = 2;
181// CHECK: int J = 6;
182// CHECK: int K = 2;
183
184// CHECK: def I3_2_J2_6_K1_3
185// CHECK: int I = 2;
186// CHECK: int J = 6;
187// CHECK: int K = 3;
188
189// CHECK: def I3_3_J2_4_K1_1
190// CHECK: int I = 3;
191// CHECK: int J = 4;
192// CHECK: int K = 1;
193
194// CHECK: def I3_3_J2_4_K1_2
195// CHECK: int I = 3;
196// CHECK: int J = 4;
197// CHECK: int K = 2;
198
199// CHECK: def I3_3_J2_4_K1_3
200// CHECK: int I = 3;
201// CHECK: int J = 4;
202// CHECK: int K = 3;
203
204// CHECK: def I3_3_J2_5_K1_1
205// CHECK: int I = 3;
206// CHECK: int J = 5;
207// CHECK: int K = 1;
208
209// CHECK: def I3_3_J2_5_K1_2
210// CHECK: int I = 3;
211// CHECK: int J = 5;
212// CHECK: int K = 2;
213
214// CHECK: def I3_3_J2_5_K1_3
215// CHECK: int I = 3;
216// CHECK: int J = 5;
217// CHECK: int K = 3;
218
219// CHECK: def I3_3_J2_6_K1_1
220// CHECK: int I = 3;
221// CHECK: int J = 6;
222// CHECK: int K = 1;
223
224// CHECK: def I3_3_J2_6_K1_2
225// CHECK: int I = 3;
226// CHECK: int J = 6;
227// CHECK: int K = 2;
228
229// CHECK: def I3_3_J2_6_K1_3
230// CHECK: int I = 3;
231// CHECK: int J = 6;
232// CHECK: int K = 3;
233
234// CHECK: def I4_1_J3_4
235// CHECK: int I = 1;
236// CHECK: int J = 4;
237// CHECK: int K = 0;
238
239// CHECK: def I4_1_J3_5
240// CHECK: int I = 1;
241// CHECK: int J = 5;
242// CHECK: int K = 0;
243
244// CHECK: def I4_1_J3_6
245// CHECK: int I = 1;
246// CHECK: int J = 6;
247// CHECK: int K = 0;
248
249// CHECK: def I4_2_J3_4
250// CHECK: int I = 2;
251// CHECK: int J = 4;
252// CHECK: int K = 0;
253
254// CHECK: def I4_2_J3_5
255// CHECK: int I = 2;
256// CHECK: int J = 5;
257// CHECK: int K = 0;
258
259// CHECK: def I4_2_J3_6
260// CHECK: int I = 2;
261// CHECK: int J = 6;
262// CHECK: int K = 0;
263
264// CHECK: def I4_3_J3_4
265// CHECK: int I = 3;
266// CHECK: int J = 4;
267// CHECK: int K = 0;
268
269// CHECK: def I4_3_J3_5
270// CHECK: int I = 3;
271// CHECK: int J = 5;
272// CHECK: int K = 0;
273
274// CHECK: def I4_3_J3_6
275// CHECK: int I = 3;
276// CHECK: int J = 6;
277// CHECK: int K = 0;
278