brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · ef9f54b Raw
63 lines · plain
1// RUN: llvm-tblgen %s | FileCheck %s2// XFAIL: vg_leak3 4// CHECK: --- Defs ---5 6// CHECK: def Sum {7// CHECK:   int x = 712;8// CHECK: }9 10// CHECK: def yyy_A011// CHECK: def yyy_A112// CHECK: def yyy_A213// CHECK: def yyy_B0A014// CHECK: def yyy_B0A115// CHECK: def yyy_C0B0A016// CHECK: def yyy_C0B0A117// CHECK: def yyy_C0B1A018// CHECK: def yyy_C0B1A119// CHECK-NOT: def zzz_A020// CHECK: def zzz_B0A021// CHECK: def zzz_B0A122// CHECK: def zzz_C0B0A023// CHECK: def zzz_C0B0A124// CHECK: def zzz_C0B1A025// CHECK: def zzz_C0B1A126 27class A<int a> {28  int Num = a;29}30 31multiclass B<int b> {32  def A0 : A<!add(10, b)>;33  def A1 : A<!add(20, b)>;34}35 36multiclass C<int c> {37  defm B0 : B<!add(100, c)>;38  defm B1 : B<!add(200, c)>;39}40 41defset list<A> As = {42  def A0 : A<1>;43  foreach i = 1...2 in {44    def A#i : A<!add(i, 1)>;45  }46  defset list<A> SubAs = {47    defm B0 : B<2>;48    defm C0 : C<3>;49  }50}51 52def Sum {53  int x = !foldl(0, As, a, b, !add(a, b.Num));54}55 56foreach a = As in {57  def yyy_ # !cast<string>(a);58}59 60foreach a = SubAs in {61  def zzz_ # !cast<string>(a);62}63