1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-tblgen %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker// XFAIL: vg_leak 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerclass Base<list<int> v> { 5*9880d681SAndroid Build Coastguard Worker list<int> values = v; 6*9880d681SAndroid Build Coastguard Worker} 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerclass Derived<list<int> v> : Base<!if(!empty(v),[0],v)>; 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workermulticlass Multi<list<list<list<int>>> v> { 11*9880d681SAndroid Build Coastguard Worker def ONE : Derived<!if(!empty(v),[]<int>,!if(!empty(!head(v)),[]<int>,v[0][0]))>; 12*9880d681SAndroid Build Coastguard Worker def TWO : Derived<!if(!empty(v),[]<int>,!if(!empty(!tail(v)),!if(!empty(!head(v)),[]<int>,v[0][0]),v[1][0]))>; 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefm Def : Multi<[[[]],[[1, 2, 3]]]>; 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker// CHECK: values = [0] 18*9880d681SAndroid Build Coastguard Worker// CHECK: values = [1, 2, 3] 19