1 // RUN: clang-import-test -dump-ast -import %S/Inputs/S.cpp -expression %s -Xcc -DSEQ | FileCheck --check-prefix=CHECK-SEQ %s 2 // RUN: clang-import-test -dump-ast -import %S/Inputs/S.cpp -expression %s -Xcc -DPACK | FileCheck --check-prefix=CHECK-PACK %s 3 // RUN: clang-import-test -dump-ast -import %S/Inputs/S.cpp -expression %s -Xcc -DPACK -Xcc -DSEQ | FileCheck --check-prefixes=CHECK-SEQ,CHECK-PACK %s 4 5 // CHECK-SEQ: BuiltinTemplateDecl 6 // CHECK-SEQ-SAME: <invalid sloc> 7 // CHECK-SEQ-SAME: implicit 8 // CHECK-SEQ-SAME: __make_integer_seq 9 10 // CHECK-PACK: BuiltinTemplateDecl 11 // CHECK-PACK-SAME: <invalid sloc> 12 // CHECK-PACK-SAME: implicit 13 // CHECK-PACK-SAME: __type_pack_element 14 15 void expr() { 16 #ifdef SEQ 17 typedef MakeSeq<int, 3> M1; 18 M1 m1; 19 typedef MakeSeq<long, 4> M2; 20 M2 m2; 21 static_assert(M1::PackSize == 3, ""); 22 static_assert(M2::PackSize == 4, ""); 23 #endif 24 25 #ifdef PACK 26 static_assert(__is_same(TypePackElement<0, X<0>>, X<0>), ""); 27 static_assert(__is_same(TypePackElement<0, X<0>, X<1>>, X<0>), ""); 28 static_assert(__is_same(TypePackElement<1, X<0>, X<1>>, X<1>), ""); 29 #endif 30 } 31