From 08fcfb227dfbd65681df3b2e47076086f1a2ccd7 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 12 May 2015 09:03:04 +0000 Subject: [PATCH] 2015-05-12 Paolo Carlini PR c++/65133 * g++.dg/cpp0x/trailing10.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223047 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/trailing10.C | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/trailing10.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3f5f347b5f5..37d18532017 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-05-12 Paolo Carlini + + PR c++/65133 + * g++.dg/cpp0x/trailing10.C: New. + 2015-05-12 Richard Biener * gcc.dg/vect/bb-slp-35.c: New testcase. diff --git a/gcc/testsuite/g++.dg/cpp0x/trailing10.C b/gcc/testsuite/g++.dg/cpp0x/trailing10.C new file mode 100644 index 00000000000..19ef57fa9ea --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/trailing10.C @@ -0,0 +1,33 @@ +// PR c++/65133 +// { dg-do compile { target c++11 } } + +template +struct enable_if { }; + +template +struct enable_if { typedef Tp type; }; + +template +struct count +{ + using type = typename count::type; +}; + +template <> +struct count<0> +{ + using type = void; +}; + +template +auto foo(typename enable_if<(I>=0)>::type * + = nullptr) -> typename count::type { } + +template +void foo(typename enable_if<(I<0)>::type * = nullptr) { } + +int main() +{ + foo<2>(); + foo<-1>(); +} -- 2.11.4.GIT