annotate llvm/test/TableGen/foreach-leak.td @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: llvm-tblgen %s | FileCheck %s
anatofuz
parents:
diff changeset
2 // XFAIL: vg_leak
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // CHECK: --- Classes ---
anatofuz
parents:
diff changeset
5 // CHECK: list<int> ret = !foreach(a,
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // CHECK: --- Defs ---
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 // CHECK: def C0 {
anatofuz
parents:
diff changeset
10 // CHECK: list<list<int>> ret = {{\[}}[1, 2, 3], [1, 2, 3]];
anatofuz
parents:
diff changeset
11 // CHECK: }
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 // The variable name 'a' is used both in the "inner" and in the "outer" foreach.
anatofuz
parents:
diff changeset
14 // The test ensure that the inner declaration of 'a' properly shadows the outer
anatofuz
parents:
diff changeset
15 // one.
anatofuz
parents:
diff changeset
16 class A<list<int> lst> {
anatofuz
parents:
diff changeset
17 list<int> ret = !foreach(a, lst, !add(a, 1));
anatofuz
parents:
diff changeset
18 }
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 class B<list<int> lst1, list<int> lst2> {
anatofuz
parents:
diff changeset
21 list<list<int>> ret = !foreach(a, lst1, A<lst2>.ret);
anatofuz
parents:
diff changeset
22 }
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 class C<list<int> lst2> {
anatofuz
parents:
diff changeset
25 list<list<int>> ret = B<[0, 1], lst2>.ret;
anatofuz
parents:
diff changeset
26 }
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 def C0 : C<[0, 1, 2]>;