| // RUN: llvm-tblgen %s | FileCheck %s | 
 | // XFAIL: vg_leak | 
 |  | 
 | // CHECK: --- Defs --- | 
 |  | 
 | // CHECK: def X0 { | 
 | // CHECK:   int ret = 0; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def X1 { | 
 | // CHECK:   int ret = 1; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def Y0 { | 
 | // CHECK:   int ret = 0; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def Y1 { | 
 | // CHECK:   int ret = 11; | 
 | // CHECK: } | 
 |  | 
 | class A<int dummy>; | 
 | class B<int num> : A<num> { | 
 |   int Num = num; | 
 | } | 
 |  | 
 | class X<A a> { | 
 |   int ret = !isa<B>(a); | 
 | } | 
 |  | 
 | class Y<A a> { | 
 |   int ret = !if(!isa<B>(a), !cast<B>(a).Num, 0); | 
 | } | 
 |  | 
 | def X0 : X<A<0>>; | 
 | def X1 : X<B<0>>; | 
 |  | 
 | def Y0 : Y<A<10>>; | 
 | def Y1 : Y<B<11>>; |