// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused %s // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused %s -frecovery-ast -frecovery-ast-type // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused -fexperimental-new-constant-interpreter %s // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused -frecovery-ast -frecovery-ast-type -fexperimental-new-constant-interpreter %s template void f() { ((^ { Ts t; }), ...); ((^ (Ts t) {}), ...); ((^ Ts () {}), ...); ^ { Ts t; }; // expected-error {{unexpanded parameter pack 'Ts'}} ^ (Ts t) {}; // expected-error {{unexpanded parameter pack 'Ts'}} ^ Ts () {}; // expected-error {{unexpanded parameter pack 'Ts'}} } template void gh109148() { (^Ts); // expected-error {{expected expression}} [] { (^Ts); // expected-error {{expected expression}} ^Ts; // expected-error {{expected expression}} ^(Ts); // expected-error {{expected expression}} ^ Ts); // expected-error {{expected expression}} }; ([] { (^Ts); // expected-error {{expected expression}} ^Ts; // expected-error {{expected expression}} ^(Ts); // expected-error {{expected expression}} ^ Ts); // expected-error {{expected expression}} }, ...); // expected-error {{pack expansion does not contain any unexpanded parameter packs}} [] { // expected-error {{unexpanded parameter pack 'Ts'}} ^ (Ts) {}; }; [] { // expected-error {{unexpanded parameter pack 'Ts'}} ^ { Ts x; }; }; [] { // expected-error {{unexpanded parameter pack 'Ts'}} Ts s; (^Ts); // expected-error {{expected expression}} }; ([] { Ts s; (^Ts); // expected-error {{expected expression}} }, ...); [] { // expected-error {{unexpanded parameter pack 'Ts'}} ^ { Ts s; return not_defined; }; // expected-error {{use of undeclared identifier 'not_defined'}} }; } void g() { f<>(); f(); f(); gh109148<>(); gh109148(); gh109148(); }