brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 8f63c98 Raw
68 lines · cpp
1// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused %s2// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused %s -frecovery-ast -frecovery-ast-type3 4// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused -fexperimental-new-constant-interpreter %s5// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-unused -frecovery-ast -frecovery-ast-type -fexperimental-new-constant-interpreter %s6 7template <typename ...Ts>8void f() {9  ((^ { Ts t; }), ...);10  ((^ (Ts t) {}), ...);11  ((^ Ts () {}), ...);12 13  ^ { Ts t; }; // expected-error {{unexpanded parameter pack 'Ts'}}14  ^ (Ts t) {}; // expected-error {{unexpanded parameter pack 'Ts'}}15  ^ Ts () {};  // expected-error {{unexpanded parameter pack 'Ts'}}16}17 18template <typename ...Ts>19void gh109148() {20  (^Ts); // expected-error {{expected expression}}21 22  [] {23    (^Ts); // expected-error {{expected expression}}24    ^Ts;   // expected-error {{expected expression}}25    ^(Ts); // expected-error {{expected expression}}26    ^ Ts); // expected-error {{expected expression}}27  };28 29  ([] {30    (^Ts); // expected-error {{expected expression}}31    ^Ts;   // expected-error {{expected expression}}32    ^(Ts); // expected-error {{expected expression}}33    ^ Ts); // expected-error {{expected expression}}34  }, ...); // expected-error {{pack expansion does not contain any unexpanded parameter packs}}35 36  [] { // expected-error {{unexpanded parameter pack 'Ts'}}37    ^ (Ts) {};38  };39 40  [] { // expected-error {{unexpanded parameter pack 'Ts'}}41    ^ { Ts x; };42  };43 44  [] { // expected-error {{unexpanded parameter pack 'Ts'}}45    Ts s;46    (^Ts); // expected-error {{expected expression}}47  };48 49  ([] {50    Ts s;51    (^Ts); // expected-error {{expected expression}}52  }, ...);53 54  [] { // expected-error {{unexpanded parameter pack 'Ts'}}55    ^ { Ts s; return not_defined; }; // expected-error {{use of undeclared identifier 'not_defined'}}56  };57}58 59void g() {60  f<>();61  f<int>();62  f<long, float>();63 64  gh109148<>();65  gh109148<int>();66  gh109148<long, float>();67}68