1 // RUN: llvm-tblgen %s | FileCheck %s
3 // CHECK: class F<Y [[ARG:.+]] = ?> {
4 // CHECK: string ret = !if(!initialized([[ARG]].str), [[ARG]].str, "N/A");
12 bit c0 = !initialized(?);
13 bit c1 = !initialized(0);
14 bit c2 = !initialized(1);
22 string ret = !if(!initialized(y.str), y.str, "N/A");
30 // CHECK-LABEL: def FY0
31 // CHECK: string ret = "N/A";
32 // CHECK-LABEL: def FY1
33 // CHECK: string ret = "foo";
38 list<string> v = [y.str];
39 bit isInit = !initialized(v);
42 // CHECK-LABEL: def GY0
44 // CHECK-LABEL: def GY1
51 class Propagate<Thing t> {
52 Thing ret = !if(!initialized(t), t, ?);
54 // CHECK-LABEL: def PropagateNothing
55 // CHECK: Thing ret = ?
56 // CHECK-LABEL: def PropagateThing
57 // CHECK: Thing ret = aThing
58 def PropagateNothing : Propagate<?>;
59 def PropagateThing : Propagate<aThing>;