Mercurial > hg > CbC > CbC_llvm
diff llvm/test/TableGen/foreach-leak.td @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/llvm/test/TableGen/foreach-leak.td Thu Feb 13 15:10:13 2020 +0900 @@ -0,0 +1,28 @@ +// RUN: llvm-tblgen %s | FileCheck %s +// XFAIL: vg_leak + +// CHECK: --- Classes --- +// CHECK: list<int> ret = !foreach(a, + +// CHECK: --- Defs --- + +// CHECK: def C0 { +// CHECK: list<list<int>> ret = {{\[}}[1, 2, 3], [1, 2, 3]]; +// CHECK: } + +// The variable name 'a' is used both in the "inner" and in the "outer" foreach. +// The test ensure that the inner declaration of 'a' properly shadows the outer +// one. +class A<list<int> lst> { + list<int> ret = !foreach(a, lst, !add(a, 1)); +} + +class B<list<int> lst1, list<int> lst2> { + list<list<int>> ret = !foreach(a, lst1, A<lst2>.ret); +} + +class C<list<int> lst2> { + list<list<int>> ret = B<[0, 1], lst2>.ret; +} + +def C0 : C<[0, 1, 2]>;