From 6cc6b087c8cdfdf58a4bb166aa53950c4bfdef2d Mon Sep 17 00:00:00 2001 From: Patrick Palka <ppalka@redhat.com> Date: Wed, 13 May 2020 09:20:44 -0400 Subject: [PATCH] c++: Add testcase for already-fixed PR [PR70642] We correctly reject the testcase in this PR ever since commit r9-7046. gcc/testsuite/ChangeLog: PR c++/70642 * g++.dg/cpp0x/alias-decl-70.C: New test. --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C | 23 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 22adacb264c6..4f602ed6f318 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-05-13 Patrick Palka <ppalka@redhat.com> + + PR c++/70642 + * g++.dg/cpp0x/alias-decl-70.C: New test. + 2020-05-13 Jakub Jelinek <jakub@redhat.com> PR debug/95080 diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C new file mode 100644 index 000000000000..28d9279e8a46 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C @@ -0,0 +1,23 @@ +// PR c++/70642 +// { dg-do compile { target c++11 } } + +template<bool, class> struct enable_if {}; +template<class T> struct enable_if<true, T> { using type = T; }; + +template <typename X> +struct foo +{ + template <typename R> + using meow = typename enable_if<sizeof(X) == 0, R>::type; // { dg-error "no type named .type." } + + template <typename R = int> // 1 + meow<R> bar () = delete; + + int bar () + { + meow<int> i; // 2 + return 0; // 3 + } +}; + +int j = foo<long>().bar();