xref: /llvm-project/llvm/test/TableGen/AnonDefinitionOnDemand.td (revision d4c0a5d08dfad8427873bc91828681f2a807b2d9)
1// RUN: llvm-tblgen %s | FileCheck %s
2// XFAIL: vg_leak
3
4// CHECK: --- Defs ---
5
6// CHECK: def X {
7// CHECK:   foo Y = anonymous_0;
8// CHECK: }
9
10// CHECK: def ZD {
11// CHECK:   foo Z = anonymous_1;
12// CHECK: }
13
14// CHECK: def anonymous_0 {
15// CHECK:   int THEVAL = 1;
16// CHECK: }
17
18// CHECK: def anonymous_1 {
19// CHECK:   int THEVAL = 42;
20// CHECK: }
21
22class foo<int X> { int THEVAL = X; }
23def foo_imp : foo<1>;
24
25def x {
26  foo Y = foo_imp;    // This works.
27}
28
29def X {
30  foo Y = foo<1>;     // This should work too, synthesizing a new foo<1>.
31}
32
33class Z<int X> {
34  foo Z = foo<X>;
35}
36
37def ZD : Z<42>;
38