Home | History | Annotate | Download | only in TableGen
      1 // RUN: llvm-tblgen %s | grep {zing = 4} | count 28
      2 // XFAIL: vg_leak
      3 
      4 class C1<int A, string B> { 
      5   int bar = A;
      6   string thestr = B;
      7   int zing;
      8 }
      9 
     10 def T : C1<4, "blah">;
     11 
     12 multiclass t1<int a1> {
     13   def S1 : C1<a1, "foo"> {
     14     int foo = 4;
     15     let bar = 1;
     16   }
     17   def S2 : C1<a1, "bar">;
     18 }
     19 
     20 multiclass t2<int a2> {
     21   def S3 : C1<a2, "foo"> {
     22     int foo = 4;
     23     let bar = 1;
     24   }
     25   def S4 : C1<a2, "bar">;
     26 }
     27 
     28 multiclass s1<int as1, int bs1> : t1<as1> {
     29   def S5 : C1<bs1, "moo"> {
     30     int moo = 3;
     31     let bar = 1;
     32   }
     33   def S6 : C1<bs1, "baz">;
     34 }
     35 
     36 multiclass s2<int as2> : t1<as2>, t2<as2>;
     37 
     38 multiclass s3<int as3, int bs3> : t1<as3>, t2<as3> {
     39   def S7 : C1<bs3, "moo"> {
     40     int moo = 3;
     41     let bar = 1;
     42   }
     43   def S8 : C1<bs3, "baz">;
     44 }
     45 
     46 let zing = 4 in
     47 defm FOO1 : s1<42, 24>;
     48 
     49 let zing = 4 in
     50 defm FOO2 : s2<99>;
     51 
     52 let zing = 4 in
     53 defm FOO3 : s3<84, 48>;
     54 
     55 def T4 : C1<6, "foo">;
     56 
     57 let zing = 4 in
     58   defm BAZ1 : s1<3, 4>;
     59 
     60 let zing = 4 in
     61   defm BAZ2 : s2<5>;
     62 
     63 let zing = 4 in
     64   defm BAZ3 : s3<6, 7>;
     65 
     66