testsuite: Add testcase for already fixed PR [PR90019]
authorJakub Jelinek <jakub@redhat.com>
Fri, 14 May 2021 12:56:28 +0000 (14:56 +0200)
committerJakub Jelinek <jakub@redhat.com>
Fri, 14 May 2021 12:56:28 +0000 (14:56 +0200)
2021-05-14  Jakub Jelinek  <jakub@redhat.com>

PR c++/90019
* g++.dg/cpp0x/sfinae68.C: New test.

gcc/testsuite/g++.dg/cpp0x/sfinae68.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/cpp0x/sfinae68.C b/gcc/testsuite/g++.dg/cpp0x/sfinae68.C
new file mode 100644 (file)
index 0000000..d292b68
--- /dev/null
@@ -0,0 +1,23 @@
+// PR c++/90019
+// { dg-do compile { target c++11 } }
+
+template<bool, typename T = void>
+struct enable_if { };
+template<typename T>
+struct enable_if<true, T> { typedef T type; };
+template<bool C, typename T = void>
+using __enable_if_t = typename enable_if<C, T>::type;
+template<bool C, typename T = void>
+using enable_if_t = typename enable_if<C, T>::type;
+
+template <int I, enable_if_t<I == 0, int>...> void foo() {}
+template <int I, enable_if_t<I != 0, int>...> void foo() {}
+template <int I, int=0, enable_if_t<I == 0, int>...> void bar() {}
+template <int I, int=0, enable_if_t<I != 0, int>...> void bar() {}
+
+void test()
+{
+  bar<0>();
+  bar<0,0>();
+  foo<0>();
+}