// RUN: llvm-tblgen --no-warn-on-unused-template-args %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>>;