isa.td
562 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 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>>;