1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
// RUN: %clang_cc1 -std=c++2c -fsyntax-only -fblocks -verify %s
void a(...);
void b(auto...);
void c(auto, ...);
void d(auto......); // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}} \
// expected-warning {{'...' in this location creates a C-style varargs function}} \
// expected-note {{preceding '...' declares a function parameter pack}} \
// expected-note {{insert ',' before '...' to silence this warning}}
void e(auto..., ...);
void f(auto x...); // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
void g(auto x, ...);
void h(auto... x...); // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}} \
// expected-warning {{'...' in this location creates a C-style varargs function}} \
// expected-note {{preceding '...' declares a function parameter pack}} \
// expected-note {{insert ',' before '...' to silence this warning}}
void i(auto... x, ...);
template<class ...Ts>
void j(Ts... t...) {}; // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}} \
// expected-warning {{'...' in this location creates a C-style varargs function}} \
// expected-note {{preceding '...' declares a function parameter pack}} \
// expected-note {{insert ',' before '...' to silence this warning}}
template<class ...Ts>
void k(Ts... t, ...) {}
void l(int...); // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
void m(int, ...);
void n(int x...); // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
void o(int x, ...);
struct S {
void p(this S...) {} // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
};
template<class ...Ts>
void q(Ts......) {} // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}} \
// expected-warning {{'...' in this location creates a C-style varargs function}} \
// expected-note {{preceding '...' declares a function parameter pack}} \
// expected-note {{insert ',' before '...' to silence this warning}}
template<class T>
void r(T...) {} // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
auto type_specifier = (void (*)(int...)) nullptr; // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
auto lambda = [](int...) {}; // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
auto block = ^(int...){}; // expected-warning {{declaration of a variadic function without a comma before '...' is deprecated}}
|