1 // RUN: %clang_cc1 -std=c++11 -fblocks -fsyntax-only -verify %s
3 // Tests the use of blocks with variadic templates.
4 template<typename
...Args
>
7 return sizeof...(Args
);
9 return sizeof...(args
);
13 template<typename
...Args
>
14 int f1(Args
...args
) {
20 template int f0(int, float, double);
21 template int f1(const char*, int, float, double);
23 template<typename
...Args
>
24 int f2(Args
...args
) {
25 return ^(Args
...block_args
) {
26 return f1(block_args
...);
30 template int f2(const char*, int, float, double);
32 template<typename
...Args
>
33 int f3(Args
...args
) {
34 return ^(Args
*...block_args
) {
35 return f1(block_args
...);
39 template int f3(const char*, int, float, double);
41 template<typename
...Args
>
42 int PR9953(Args
...args
) {
43 return ^(Args
*...block_args
) {
44 return f1(block_args
); // expected-error{{expression contains unexpanded parameter pack 'block_args'}}