// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak // CHECK: --- Defs --- // CHECK: def Sum { // CHECK: int x = 712; // CHECK: } // CHECK: def yyy_A0 // CHECK: def yyy_A1 // CHECK: def yyy_A2 // CHECK: def yyy_B0A0 // CHECK: def yyy_B0A1 // CHECK: def yyy_C0B0A0 // CHECK: def yyy_C0B0A1 // CHECK: def yyy_C0B1A0 // CHECK: def yyy_C0B1A1 // CHECK-NOT: def zzz_A0 // CHECK: def zzz_B0A0 // CHECK: def zzz_B0A1 // CHECK: def zzz_C0B0A0 // CHECK: def zzz_C0B0A1 // CHECK: def zzz_C0B1A0 // CHECK: def zzz_C0B1A1 class A { int Num = a; } multiclass B { def A0 : A; def A1 : A; } multiclass C { defm B0 : B; defm B1 : B; } defset list As = { def A0 : A<1>; foreach i = 1-2 in { def A#i : A; } defset list SubAs = { defm B0 : B<2>; defm C0 : C<3>; } } def Sum { int x = !foldl(0, As, a, b, !add(a, b.Num)); } foreach a = As in { def yyy_ # !cast(a); } foreach a = SubAs in { def zzz_ # !cast(a); }