diff options
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic164.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic17.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic28.C | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/vt-65790.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1z/fold10.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp26/variadic-comma1.C | 18 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp26/variadic-comma2.C | 19 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp26/variadic-comma3.C | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp26/variadic-comma4.C | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp26/variadic-comma5.C | 19 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/attrib33.C | 2 |
18 files changed, 93 insertions, 26 deletions
diff --git a/gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C b/gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C index eb5e23c..318e148 100644 --- a/gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C +++ b/gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C @@ -7,5 +7,5 @@ struct _Bind { _Bind(_Bind &); }; template <typename _Func, typename _BoundArgs> -_Bind bind(_Func, _BoundArgs &&...); +_Bind bind(_Func, _BoundArgs &&, ...); void test01() { bind(minus(), _2, _1); } diff --git a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C index efb2a1a..485d349 100644 --- a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C +++ b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C @@ -5,7 +5,7 @@ template <int N> struct T { - void foo [[gnu::format (printf,2,3)]] (char const * ...); + void foo [[gnu::format (printf,2,3)]] (char const * ...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } }; template struct T<3>; diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C index a1ffadd..1767dd7 100644 --- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C @@ -7,7 +7,7 @@ struct FF { template < class F, class ... Ts > void - operator () (F & ...) + operator () (F & ...) // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } { const int n = sizeof ... (Ts) + 1; void *mutexes[n]; diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C b/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C index 72cb4b4..2750888 100644 --- a/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C +++ b/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C @@ -27,6 +27,7 @@ operator ""_Foo(const char16_t *); // { dg-error "1:.Foo operator\"\"_Foo\\(cons Foo operator ""_Foo(char...); // { dg-error "1:.Foo operator\"\"_Foo\\(char, \\.\\.\\.\\). has invalid argument list" } + // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } .-1 } Foo operator ""_Foo(unsigned long long int, char); // { dg-error "1:.Foo operator\"\"_Foo\\(long long unsigned int, char\\). has invalid argument list" } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic164.C b/gcc/testsuite/g++.dg/cpp0x/variadic164.C index 8f9cdb1..a385534 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic164.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic164.C @@ -8,5 +8,5 @@ template <typename Tuple, typename... Tuples, int... ElementIndices, typename = typename tuple<slice_result<ElementIndices, Tuples...>, slice_result<ElementIndices, Tuples...>...>::type> // { dg-error "parameter pack" } -void zip_with(Tuple...); +void zip_with(Tuple...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } decltype(zip_with(0)) d; // { dg-error "no match" } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic17.C b/gcc/testsuite/g++.dg/cpp0x/variadic17.C index d54022a..4791bb4 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic17.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic17.C @@ -2,7 +2,7 @@ template<typename R, typename... ArgTypes> struct make_function_type { - typedef R type(const ArgTypes&......); + typedef R type(const ArgTypes&......); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } }; template<typename T, typename U> @@ -16,6 +16,6 @@ struct is_same<T, T> { }; int a0[is_same<make_function_type<int>::type, int(...)>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(const float&...)>::value? 1 : -1]; +int a1[is_same<make_function_type<int, float>::type, int(const float&...)>::value? 1 : -1]; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } int a2[is_same<make_function_type<int, float>::type, int(const float&,...)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(const float&, double const&...)>::value? 1 : -1]; +int a3[is_same<make_function_type<int, float, double>::type, int(const float&, double const&...)>::value? 1 : -1]; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic28.C b/gcc/testsuite/g++.dg/cpp0x/variadic28.C index b027861..57f6d23 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic28.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic28.C @@ -3,7 +3,7 @@ template<typename Signature> struct function_traits; template<typename R, typename... ArgTypes> -struct function_traits<R(ArgTypes......)> { +struct function_traits<R(ArgTypes......)> { // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } typedef R result_type; }; @@ -17,9 +17,9 @@ struct same_type<T, T> { static const bool value = true; }; -int a0[same_type<function_traits<int(double, char...)>::result_type, int>::value? 1 : -1]; +int a0[same_type<function_traits<int(double, char...)>::result_type, int>::value? 1 : -1]; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } int a1[same_type<function_traits<int(double, char,...)>::result_type, int>::value? 1 : -1]; int a2[same_type<function_traits<int(char,...)>::result_type, int>::value? 1 : -1]; int a3[same_type<function_traits<int(...)>::result_type, int>::value? 1 : -1]; -int a4[same_type<function_traits<int(double x, char...)>::result_type, int>::value? 1 : -1]; -int a5[same_type<function_traits<int(double, char y...)>::result_type, int>::value? 1 : -1]; +int a4[same_type<function_traits<int(double x, char...)>::result_type, int>::value? 1 : -1]; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } +int a5[same_type<function_traits<int(double, char y...)>::result_type, int>::value? 1 : -1]; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-65790.C b/gcc/testsuite/g++.dg/cpp0x/vt-65790.C index 477e988..4e89963 100644 --- a/gcc/testsuite/g++.dg/cpp0x/vt-65790.C +++ b/gcc/testsuite/g++.dg/cpp0x/vt-65790.C @@ -1,7 +1,7 @@ // PR c++/65790 // { dg-do compile { target c++11 } } -extern "C" int printf(const char* ...); +extern "C" int printf(const char*, ...); namespace std { diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C index e78677d..0fb873d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic19.C @@ -1,4 +1,4 @@ // PR c++/86728 // { dg-do compile { target c++14 } } -auto c = [](auto x ...) { }; +auto c = [](auto x ...) { }; // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } diff --git a/gcc/testsuite/g++.dg/cpp1z/fold10.C b/gcc/testsuite/g++.dg/cpp1z/fold10.C index 1bd39a0..87aee5b 100644 --- a/gcc/testsuite/g++.dg/cpp1z/fold10.C +++ b/gcc/testsuite/g++.dg/cpp1z/fold10.C @@ -4,7 +4,7 @@ template <int...> struct seq {}; template <bool> struct S { template <typename Args> - constexpr static void call(Args&&...) {} + constexpr static void call(Args&&...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } }; template <int ...Idx,typename ...Args> diff --git a/gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C b/gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C index f6a892e..4ff13af 100644 --- a/gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C +++ b/gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics3.C @@ -24,7 +24,7 @@ void S::f12(this S s = {}) {} // { dg-error "an explicit object parameter may no struct S0 { template<typename Selves> - void f(this Selves...) {} + void f(this Selves...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void g(this Selves... selves) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -37,7 +37,7 @@ struct S0 { void k(this Selves...) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } template<typename Selves> - void fd(this Selves...); + void fd(this Selves...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void gd(this Selves... selves); // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -52,7 +52,7 @@ struct S0 { struct S1 { template<typename Selves> - void f(this Selves&...) {} + void f(this Selves&...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void g(this Selves&... selves) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -65,7 +65,7 @@ struct S1 { void k(this Selves&...) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } template<typename Selves> - void fd(this Selves&...); + void fd(this Selves&...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void gd(this Selves&... selves); // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -80,7 +80,7 @@ struct S1 { struct S2 { template<typename Selves> - void f(this Selves&&...) {} + void f(this Selves&&...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void g(this Selves&&... selves) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -93,7 +93,7 @@ struct S2 { void k(this Selves&&...) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } template<typename Selves> - void fd(this Selves&&...); + void fd(this Selves&&...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void gd(this Selves&&... selves); // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -108,7 +108,7 @@ struct S2 { struct S3 { template<typename Selves> - void f(this Selves const&...) {} + void f(this Selves const&...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void g(this Selves const&... selves) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -121,7 +121,7 @@ struct S3 { void k(this Selves const&...) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } template<typename Selves> - void fd(this Selves const&...); + void fd(this Selves const&...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void gd(this Selves const&... selves); // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -136,7 +136,7 @@ struct S3 { struct S4 { template<typename Selves> - void f(this Selves const&&...) {} + void f(this Selves const&&...) {} // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void g(this Selves const&&... selves) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } @@ -149,7 +149,7 @@ struct S4 { void k(this Selves const&&...) {} // { dg-error "an explicit object parameter cannot be a function parameter pack" } template<typename Selves> - void fd(this Selves const&&...); + void fd(this Selves const&&...); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } template<typename Selves> void gd(this Selves const&&... selves); // { dg-error "an explicit object parameter cannot be a function parameter pack" } diff --git a/gcc/testsuite/g++.dg/cpp26/variadic-comma1.C b/gcc/testsuite/g++.dg/cpp26/variadic-comma1.C new file mode 100644 index 0000000..d5cf13f --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/variadic-comma1.C @@ -0,0 +1,18 @@ +// P3176R1 - The Oxford variadic comma +// { dg-do compile { target c++11 } } + +void f1 (int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++26 } } +#if __cplusplus >= 202002L +void f2 (auto...); +void f3 (auto......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++26 } } +#endif +template <typename ...T> +void f4 (T......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++26 } } +template <typename ...T> +void f5 (T...); +template <typename ...T> +void f6 (T..., int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++26 } } +void +f7 (char...) // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++26 } } +{ +} diff --git a/gcc/testsuite/g++.dg/cpp26/variadic-comma2.C b/gcc/testsuite/g++.dg/cpp26/variadic-comma2.C new file mode 100644 index 0000000..8d2e8f0 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/variadic-comma2.C @@ -0,0 +1,19 @@ +// P3176R1 - The Oxford variadic comma +// { dg-do compile { target c++11 } } +// { dg-additional-options "-Wdeprecated" } + +void f1 (int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +#if __cplusplus >= 202002L +void f2 (auto...); +void f3 (auto......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++20 } } +#endif +template <typename ...T> +void f4 (T......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +template <typename ...T> +void f5 (T...); +template <typename ...T> +void f6 (T..., int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +void +f7 (char...) // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +{ +} diff --git a/gcc/testsuite/g++.dg/cpp26/variadic-comma3.C b/gcc/testsuite/g++.dg/cpp26/variadic-comma3.C new file mode 100644 index 0000000..6413478 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/variadic-comma3.C @@ -0,0 +1,5 @@ +// P3176R1 - The Oxford variadic comma +// { dg-do compile { target c++11 } } +// { dg-additional-options "-Wno-deprecated-variadic-comma-omission" } + +#include "variadic-comma1.C" diff --git a/gcc/testsuite/g++.dg/cpp26/variadic-comma4.C b/gcc/testsuite/g++.dg/cpp26/variadic-comma4.C new file mode 100644 index 0000000..12f0d54 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/variadic-comma4.C @@ -0,0 +1,5 @@ +// P3176R1 - The Oxford variadic comma +// { dg-do compile { target c++11 } } +// { dg-additional-options "-Wno-deprecated" } + +#include "variadic-comma1.C" diff --git a/gcc/testsuite/g++.dg/cpp26/variadic-comma5.C b/gcc/testsuite/g++.dg/cpp26/variadic-comma5.C new file mode 100644 index 0000000..ccf3ebc --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/variadic-comma5.C @@ -0,0 +1,19 @@ +// P3176R1 - The Oxford variadic comma +// { dg-do compile { target c++11 } } +// { dg-additional-options "-Wdeprecated-variadic-comma-omission" } + +void f1 (int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +#if __cplusplus >= 202002L +void f2 (auto...); +void f3 (auto......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" "" { target c++20 } } +#endif +template <typename ...T> +void f4 (T......); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +template <typename ...T> +void f5 (T...); +template <typename ...T> +void f6 (T..., int...); // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +void +f7 (char...) // { dg-warning "omission of ',' before varargs '...' is deprecated in" } +{ +} diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C b/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C index 47a87bb..7329fa8 100644 --- a/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C +++ b/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C @@ -4,7 +4,7 @@ void sink(...); template <int... args> void f() { - sink ([] <int T> (int...) { return 1; } + sink ([] <int T> (int...) { return 1; } // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } .operator()<args>(args...)...); // { dg-warning "-Wmissing-template-keyword" } } // { dg-prune-output {expected '\)'} } diff --git a/gcc/testsuite/g++.dg/ext/attrib33.C b/gcc/testsuite/g++.dg/ext/attrib33.C index 55bfc4c..a244c1a 100644 --- a/gcc/testsuite/g++.dg/ext/attrib33.C +++ b/gcc/testsuite/g++.dg/ext/attrib33.C @@ -5,7 +5,7 @@ template <int N> struct T { - void foo (char const * ...) __attribute__ ((format (printf,2,3))); + void foo (char const * ...) __attribute__ ((format (printf,2,3))); // { dg-warning "omission of ',' before varargs '...' is deprecated" "" { target c++26 } } }; template struct T<3>; |