Home | History | Annotate | Download | only in TableGen
      1 // RUN: not llvm-tblgen %s 2>&1 | FileCheck %s
      2 // XFAIL: vg_leak
      3 
      4 // This test verifies that tablegen does fail if it can't resolve an unresolved
      5 // !cast() during processing top-level defm.
      6 
      7 class A {}
      8 class B<A a> {
      9   A ba = a;
     10 }
     11 
     12 multiclass M0<string s> {
     13   // This should work fine.
     14   def _m00 : B<!cast<A>(s)>;
     15   // CHECK: error: Undefined reference to record: 'd1_r1_no_such_record'
     16   def _m01: B<!cast<A>(s#"_no_such_record")>;
     17 }
     18 
     19 multiclass M1<string s> {
     20   def _r1 : A;
     21   // It would be nice if we could refer to _r1's name without having to pass it
     22   // explicitly via 's'.
     23   // XCHECK-DAG: note: instantiated from multiclass
     24   defm _m1: M0<s # "_r1">;
     25 }
     26 
     27 // CHECK: def _m01: B
     28 // CHECK: note: instantiated from multiclass
     29 // CHECK: defm _m1: M0
     30 // CHECK: note: instantiated from multiclass
     31 // CHECK: defm d1: M1
     32 defm d1: M1<"d1">;
     33