From: Jason Merrill Date: Tue, 13 Mar 2018 15:55:44 +0000 (-0400) Subject: Pedwarn about auto parameter even without -Wpedantic. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1d500c25165a5b708f1fc2088ba63c93a2c1eb94;p=gcc.git Pedwarn about auto parameter even without -Wpedantic. * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto parameter even without -Wpedantic. From-SVN: r258494 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d480c1bafba..0da60a3e99b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2018-03-13 Jason Merrill + * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto + parameter even without -Wpedantic. + PR c++/84798 - ICE with auto in abstract function declarator. * parser.c (cp_parser_parameter_declaration_clause): Check parser->default_arg_ok_p. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 8e8ebceb0d5..0a82f415196 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -17049,9 +17049,9 @@ cp_parser_simple_type_specifier (cp_parser* parser, "only available with " "-std=c++14 or -std=gnu++14"); else if (!flag_concepts) - pedwarn (token->location, OPT_Wpedantic, - "ISO C++ forbids use of % in parameter " - "declaration"); + pedwarn (token->location, 0, + "use of % in parameter declaration " + "only available with -fconcepts"); } else type = make_auto (); diff --git a/gcc/testsuite/g++.dg/concepts/abbrev1.C b/gcc/testsuite/g++.dg/concepts/abbrev1.C new file mode 100644 index 00000000000..8de681f2db6 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/abbrev1.C @@ -0,0 +1,12 @@ +// PR c++/64969 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +auto f1(auto x) { return *x; } +decltype(auto) f2(auto x) { return *x; } +auto f3(auto x) -> int { return *x; } + +int i; +auto r1 = f1(&i); +auto r2 = f2(&i); +auto r3 = f3(&i); diff --git a/gcc/testsuite/g++.dg/concepts/abbrev2.C b/gcc/testsuite/g++.dg/concepts/abbrev2.C new file mode 100644 index 00000000000..3100f67254e --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/abbrev2.C @@ -0,0 +1,17 @@ +// PR c++/66197 +// { dg-do run { target c++14 } } +// { dg-additional-options "-fconcepts" } + +extern "C" void abort(); + +auto add_1(auto a, auto b) { return a + b; } +auto add_2 = [](auto a, auto b) { return a + b; }; + +int main() +{ + if (add_1(3.5, 4) != 7.5 + || add_1(3, 4.5) != 7.5 + || add_2(3.5, 4) != 7.5 + || add_2(3, 4.5) != 7.5) + abort(); +} diff --git a/gcc/testsuite/g++.dg/concepts/fn-generic-member-ool.C b/gcc/testsuite/g++.dg/concepts/fn-generic-member-ool.C new file mode 100644 index 00000000000..b664ccf3da1 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/fn-generic-member-ool.C @@ -0,0 +1,36 @@ +// Out-of-line generic member function definitions. +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A { + void f(auto x); +}; + +void A::f(auto x) {} // injects a new list + +template +struct B { + void f(auto x); +}; + +template +void B::f(auto x) {} // injects a new list + +struct C { + template + void f(auto x); +}; + +template +void C::f(auto x) {} // extends existing inner list + +template +struct D +{ + template + void f(auto x); +}; + +template +template +void D::f(auto x) {} // extends existing inner list diff --git a/gcc/testsuite/g++.dg/concepts/pr58500.C b/gcc/testsuite/g++.dg/concepts/pr58500.C new file mode 100644 index 00000000000..cb74072a570 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58500.C @@ -0,0 +1,7 @@ +// PR c++/58500 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A {}; + +void foo(auto (A::*)()); diff --git a/gcc/testsuite/g++.dg/concepts/pr58534.C b/gcc/testsuite/g++.dg/concepts/pr58534.C new file mode 100644 index 00000000000..b2c3caac63c --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58534.C @@ -0,0 +1,7 @@ +// PR c++/58534 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +template void foo(const auto&) {} + +template void foo(const auto&, T...) {} diff --git a/gcc/testsuite/g++.dg/concepts/pr58535.C b/gcc/testsuite/g++.dg/concepts/pr58535.C new file mode 100644 index 00000000000..3e212a0ffd7 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58535.C @@ -0,0 +1,7 @@ +// PR c++/58535 +// { dg-do compile { target c++14 } } + +struct A +{ + virtual void foo(auto); // { dg-error "auto|templates" } +}; diff --git a/gcc/testsuite/g++.dg/concepts/pr58536.C b/gcc/testsuite/g++.dg/concepts/pr58536.C new file mode 100644 index 00000000000..99c7ebee309 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58536.C @@ -0,0 +1,10 @@ +// PR c++/58536 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A +{ + A(auto); +}; + +A::A(auto) {} diff --git a/gcc/testsuite/g++.dg/concepts/pr58548.C b/gcc/testsuite/g++.dg/concepts/pr58548.C new file mode 100644 index 00000000000..cd3e6fdb2dc --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58548.C @@ -0,0 +1,8 @@ +// PR c++/58548 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +void foo(auto) +{ + struct A { int i; }; +} diff --git a/gcc/testsuite/g++.dg/concepts/pr58549.C b/gcc/testsuite/g++.dg/concepts/pr58549.C new file mode 100644 index 00000000000..6b66afc1ad2 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr58549.C @@ -0,0 +1,8 @@ +// PR c++/58549 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +void foo(auto) +{ + void bar(); +} diff --git a/gcc/testsuite/g++.dg/concepts/pr60052.C b/gcc/testsuite/g++.dg/concepts/pr60052.C new file mode 100644 index 00000000000..c5bc28efd07 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60052.C @@ -0,0 +1,15 @@ +// PR c++/60052 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A +{ + void foo(auto); +}; + +void A::foo(auto) {} + +struct B +{ + void bar(auto); +}; diff --git a/gcc/testsuite/g++.dg/concepts/pr60053.C b/gcc/testsuite/g++.dg/concepts/pr60053.C new file mode 100644 index 00000000000..20cf1216b0e --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60053.C @@ -0,0 +1,15 @@ +// PR c++/60053 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A +{ + void foo(auto); +}; + +void A::foo(auto) {} + +template struct B +{ + template void bar(auto); +}; diff --git a/gcc/testsuite/g++.dg/concepts/pr60064.C b/gcc/testsuite/g++.dg/concepts/pr60064.C new file mode 100644 index 00000000000..b82b560d1f5 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60064.C @@ -0,0 +1,21 @@ +// PR c++/60064 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +class A +{ + int m; + friend void foo (auto) {} + friend void foo2 (auto); +}; + +void foo2 (auto i) +{ + A a; + a.m = i; +} + +int main () +{ + foo2 (7); +} diff --git a/gcc/testsuite/g++.dg/concepts/pr60065.C b/gcc/testsuite/g++.dg/concepts/pr60065.C new file mode 100644 index 00000000000..b2b1aea433e --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60065.C @@ -0,0 +1,8 @@ +// PR c++/60065 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +template void foo(auto... x); +template void foo2(auto... x); +template void foo3(auto... x, auto y, auto... z); +template void foo4(auto... x, auto y, auto... z); diff --git a/gcc/testsuite/g++.dg/concepts/pr60377.C b/gcc/testsuite/g++.dg/concepts/pr60377.C new file mode 100644 index 00000000000..5b1871735c8 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60377.C @@ -0,0 +1,9 @@ +// PR c++/60377 +// { dg-do compile { target c++14 } } + +void foo(auto, void (f*)()); // { dg-error "auto|expected" } + +struct A +{ + int i; +}; diff --git a/gcc/testsuite/g++.dg/concepts/pr60390.C b/gcc/testsuite/g++.dg/concepts/pr60390.C new file mode 100644 index 00000000000..a453d1d61a3 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60390.C @@ -0,0 +1,26 @@ +// PR c++/60390 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A +{ + void foo (auto); +}; + +class B +{ + int m; + friend void A::foo (auto); +}; + +void A::foo (auto i) +{ + B b; + b.m = i; +} + +int main () +{ + A a; + a.foo (7); +} diff --git a/gcc/testsuite/g++.dg/concepts/pr60391.C b/gcc/testsuite/g++.dg/concepts/pr60391.C new file mode 100644 index 00000000000..5c5ca2c2381 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60391.C @@ -0,0 +1,9 @@ +// PR c++/60391 +// { dg-do compile { target c++14 } } + +namespace N +{ + int operator"" _X(auto) {} // { dg-error "auto|invalid" } +} + +namespace N {} diff --git a/gcc/testsuite/g++.dg/concepts/pr60573.C b/gcc/testsuite/g++.dg/concepts/pr60573.C new file mode 100644 index 00000000000..568849175c6 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr60573.C @@ -0,0 +1,28 @@ +// PR c++/60573 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +struct A +{ + struct B + { + void foo(auto); + }; + + void B::foo(auto) {} // { dg-error "cannot define" } + + struct X + { + struct Y + { + struct Z + { + void foo(auto); + }; + }; + + void Y::Z::foo(auto) {} // { dg-error "cannot define" } + }; + + void X::Y::Z::foo(auto) {} // { dg-error "cannot define" } +}; diff --git a/gcc/testsuite/g++.dg/concepts/pr80471.C b/gcc/testsuite/g++.dg/concepts/pr80471.C new file mode 100644 index 00000000000..d5fa5a536d3 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/pr80471.C @@ -0,0 +1,23 @@ +// PR c++/80471 +// { dg-do compile { target c++14 } } +// { dg-additional-options "-fconcepts" } + +template +constexpr bool is_same = false; +template +constexpr bool is_same = true; + +template +decltype(auto) f(T&& a){return a;} + +decltype(auto) g(auto&& a){return a;} + +auto z = [](auto&& a) -> decltype(auto) { return a; }; + +int main() +{ + int i; + static_assert(is_same< decltype(f(i)), int& >, ""); + static_assert(is_same< decltype(g(i)), int >, ""); + static_assert(is_same< decltype(z(i)), int& >, ""); +} diff --git a/gcc/testsuite/g++.dg/cpp0x/auto-60626.C b/gcc/testsuite/g++.dg/cpp0x/auto-60626.C new file mode 100644 index 00000000000..35671924ea9 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/auto-60626.C @@ -0,0 +1,6 @@ +// PR c++/60626 +// { dg-do compile { target c++14 } } + +struct A {}; + +void (*A::p)(auto) = 0; // { dg-error "auto|static data member|template" } diff --git a/gcc/testsuite/g++.dg/cpp0x/auto-84662.C b/gcc/testsuite/g++.dg/cpp0x/auto-84662.C new file mode 100644 index 00000000000..271fb56f7eb --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/auto-84662.C @@ -0,0 +1,5 @@ +// PR c++/84662 +// { dg-do compile { target c++14 } } + +double b; +a (__attribute__((c (0 && int() - ([] {} && b) || auto)))); // { dg-error "auto|expected constructor, destructor, or type conversion before" } diff --git a/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C b/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C deleted file mode 100644 index 60ac52eff5b..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/fn-generic-member-ool.C +++ /dev/null @@ -1,36 +0,0 @@ -// Out-of-line generic member function definitions. -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A { - void f(auto x); -}; - -void A::f(auto x) {} // injects a new list - -template -struct B { - void f(auto x); -}; - -template -void B::f(auto x) {} // injects a new list - -struct C { - template - void f(auto x); -}; - -template -void C::f(auto x) {} // extends existing inner list - -template -struct D -{ - template - void f(auto x); -}; - -template -template -void D::f(auto x) {} // extends existing inner list diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58500.C b/gcc/testsuite/g++.dg/cpp1y/pr58500.C deleted file mode 100644 index bb68cbc1999..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58500.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/58500 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A {}; - -void foo(auto (A::*)()); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58534.C b/gcc/testsuite/g++.dg/cpp1y/pr58534.C deleted file mode 100644 index e38e1f3f667..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58534.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/58534 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -template void foo(const auto&) {} - -template void foo(const auto&, T...) {} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58535.C b/gcc/testsuite/g++.dg/cpp1y/pr58535.C deleted file mode 100644 index b36be8f4a45..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58535.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/58535 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - virtual void foo(auto); // { dg-error "templates" } -}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58536.C b/gcc/testsuite/g++.dg/cpp1y/pr58536.C deleted file mode 100644 index a4b6f553efd..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58536.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/58536 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - A(auto); -}; - -A::A(auto) {} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58548.C b/gcc/testsuite/g++.dg/cpp1y/pr58548.C deleted file mode 100644 index 6a78de46c3f..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58548.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/58548 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -void foo(auto) -{ - struct A { int i; }; -} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr58549.C b/gcc/testsuite/g++.dg/cpp1y/pr58549.C deleted file mode 100644 index 2f76399d8dd..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr58549.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/58549 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -void foo(auto) -{ - void bar(); -} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60052.C b/gcc/testsuite/g++.dg/cpp1y/pr60052.C deleted file mode 100644 index 25d20acdf84..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60052.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/60052 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - void foo(auto); -}; - -void A::foo(auto) {} - -struct B -{ - void bar(auto); -}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60053.C b/gcc/testsuite/g++.dg/cpp1y/pr60053.C deleted file mode 100644 index a8f5ba1ca3f..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60053.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/60053 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - void foo(auto); -}; - -void A::foo(auto) {} - -template struct B -{ - template void bar(auto); -}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60064.C b/gcc/testsuite/g++.dg/cpp1y/pr60064.C deleted file mode 100644 index add3f05cbbd..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60064.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/60064 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -class A -{ - int m; - friend void foo (auto) {} - friend void foo2 (auto); -}; - -void foo2 (auto i) -{ - A a; - a.m = i; -} - -int main () -{ - foo2 (7); -} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60065.C b/gcc/testsuite/g++.dg/cpp1y/pr60065.C deleted file mode 100644 index 56505b7bc04..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60065.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/60065 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -template void foo(auto... x); -template void foo2(auto... x); -template void foo3(auto... x, auto y, auto... z); -template void foo4(auto... x, auto y, auto... z); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60377.C b/gcc/testsuite/g++.dg/cpp1y/pr60377.C deleted file mode 100644 index ab35ba9b172..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60377.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/60377 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -void foo(auto, void (f*)()); // { dg-error "expected" } - -struct A -{ - int i; -}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60390.C b/gcc/testsuite/g++.dg/cpp1y/pr60390.C deleted file mode 100644 index 38d0e4bd6cd..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60390.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/60390 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - void foo (auto); -}; - -class B -{ - int m; - friend void A::foo (auto); -}; - -void A::foo (auto i) -{ - B b; - b.m = i; -} - -int main () -{ - A a; - a.foo (7); -} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60391.C b/gcc/testsuite/g++.dg/cpp1y/pr60391.C deleted file mode 100644 index 7e3570498bc..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60391.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/60391 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -namespace N -{ - int operator"" _X(auto) {} // { dg-error "invalid" } -} - -namespace N {} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60573.C b/gcc/testsuite/g++.dg/cpp1y/pr60573.C deleted file mode 100644 index da730f80f06..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60573.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/60573 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A -{ - struct B - { - void foo(auto); - }; - - void B::foo(auto) {} // { dg-error "cannot define" } - - struct X - { - struct Y - { - struct Z - { - void foo(auto); - }; - }; - - void Y::Z::foo(auto) {} // { dg-error "cannot define" } - }; - - void X::Y::Z::foo(auto) {} // { dg-error "cannot define" } -}; diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60626.C b/gcc/testsuite/g++.dg/cpp1y/pr60626.C deleted file mode 100644 index 311464472da..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr60626.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/60626 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -struct A {}; - -void (*A::p)(auto) = 0; // { dg-error "static data member|template" } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr80471.C b/gcc/testsuite/g++.dg/cpp1y/pr80471.C deleted file mode 100644 index bca4022cf57..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr80471.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/80471 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -template -constexpr bool is_same = false; -template -constexpr bool is_same = true; - -template -decltype(auto) f(T&& a){return a;} - -decltype(auto) g(auto&& a){return a;} - -auto z = [](auto&& a) -> decltype(auto) { return a; }; - -int main() -{ - int i; - static_assert(is_same< decltype(f(i)), int& >, ""); - static_assert(is_same< decltype(g(i)), int >, ""); - static_assert(is_same< decltype(z(i)), int& >, ""); -} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr84662.C b/gcc/testsuite/g++.dg/cpp1y/pr84662.C deleted file mode 100644 index 36bd201073e..00000000000 --- a/gcc/testsuite/g++.dg/cpp1y/pr84662.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/84662 -// { dg-do compile { target c++14 } } -// { dg-options "" } - -double b; -a (__attribute__((c (0 && int() - ([] {} && b) || auto)))); // { dg-error "expected constructor, destructor, or type conversion before" } diff --git a/gcc/testsuite/g++.dg/cpp1z/abbrev1.C b/gcc/testsuite/g++.dg/cpp1z/abbrev1.C deleted file mode 100644 index 3caa814c58d..00000000000 --- a/gcc/testsuite/g++.dg/cpp1z/abbrev1.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/64969 -// { dg-options "-std=c++17" } - -auto f1(auto x) { return *x; } -decltype(auto) f2(auto x) { return *x; } -auto f3(auto x) -> int { return *x; } - -int i; -auto r1 = f1(&i); -auto r2 = f2(&i); -auto r3 = f3(&i); diff --git a/gcc/testsuite/g++.dg/cpp1z/abbrev2.C b/gcc/testsuite/g++.dg/cpp1z/abbrev2.C deleted file mode 100644 index 1dc6af3a57d..00000000000 --- a/gcc/testsuite/g++.dg/cpp1z/abbrev2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/66197 -// { dg-do run } -// { dg-options "-std=c++17" } - -extern "C" void abort(); - -auto add_1(auto a, auto b) { return a + b; } -auto add_2 = [](auto a, auto b) { return a + b; }; - -int main() -{ - if (add_1(3.5, 4) != 7.5 - || add_1(3, 4.5) != 7.5 - || add_2(3.5, 4) != 7.5 - || add_2(3, 4.5) != 7.5) - abort(); -} diff --git a/gcc/testsuite/g++.dg/cpp1z/decomp3.C b/gcc/testsuite/g++.dg/cpp1z/decomp3.C index 529f3732fd5..1886cdbe90d 100644 --- a/gcc/testsuite/g++.dg/cpp1z/decomp3.C +++ b/gcc/testsuite/g++.dg/cpp1z/decomp3.C @@ -43,7 +43,7 @@ test (A &b, B c) void test2 (auto & [ p ] = bar ()) // { dg-error "'p' was not declared in this scope" } -{ +{ // { dg-warning "auto" "" { target { ! concepts } } .-1 } } int arr[4];