1*f4a2713aSLionel Sambuc// RUN: llvm-tblgen %s | FileCheck %s 2*f4a2713aSLionel Sambuc// XFAIL: vg_leak 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc// CHECK: zing = 4 5*f4a2713aSLionel Sambuc// CHECK: zing = 4 6*f4a2713aSLionel Sambuc// CHECK: zing = 4 7*f4a2713aSLionel Sambuc// CHECK: zing = 4 8*f4a2713aSLionel Sambuc// CHECK-NOT: zing = 4 9*f4a2713aSLionel Sambuc 10*f4a2713aSLionel Sambucclass C1<int A, string B> { 11*f4a2713aSLionel Sambuc int bar = A; 12*f4a2713aSLionel Sambuc string thestr = B; 13*f4a2713aSLionel Sambuc int zing; 14*f4a2713aSLionel Sambuc} 15*f4a2713aSLionel Sambuc 16*f4a2713aSLionel Sambucdef T : C1<4, "blah">; 17*f4a2713aSLionel Sambuc 18*f4a2713aSLionel Sambucmulticlass t<int a> { 19*f4a2713aSLionel Sambuc def S1 : C1<a, "foo"> { 20*f4a2713aSLionel Sambuc int foo = 4; 21*f4a2713aSLionel Sambuc let bar = 1; 22*f4a2713aSLionel Sambuc } 23*f4a2713aSLionel Sambuc def S2 : C1<a, "bar">; 24*f4a2713aSLionel Sambuc} 25*f4a2713aSLionel Sambuc 26*f4a2713aSLionel Sambucmulticlass s<int a> { 27*f4a2713aSLionel Sambuc def S3 : C1<a, "moo"> { 28*f4a2713aSLionel Sambuc int moo = 3; 29*f4a2713aSLionel Sambuc let bar = 1; 30*f4a2713aSLionel Sambuc } 31*f4a2713aSLionel Sambuc def S4 : C1<a, "baz">; 32*f4a2713aSLionel Sambuc} 33*f4a2713aSLionel Sambuc 34*f4a2713aSLionel Sambucdefm FOO : t<42>, s<24>; 35*f4a2713aSLionel Sambuc 36*f4a2713aSLionel Sambucdef T4 : C1<6, "foo">; 37*f4a2713aSLionel Sambuc 38*f4a2713aSLionel Sambuclet zing = 4 in 39*f4a2713aSLionel Sambuc defm BAZ : t<3>, s<4>; 40