c++: Add CTAD + pack expansion testcase
authorPatrick Palka <ppalka@redhat.com>
Mon, 18 Jan 2021 21:41:46 +0000 (16:41 -0500)
committerPatrick Palka <ppalka@redhat.com>
Mon, 18 Jan 2021 21:41:46 +0000 (16:41 -0500)
After r11-6614 made cp_walk_subtrees walk into the template of a CTAD
placeholder, we now correctly accept the below testcase.  We used to
reject it because find_parameter_packs_r would fail to find the
parameter pack Ts inside the CTAD placeholder within the pack expansion.

gcc/testsuite/ChangeLog:

* g++.dg/cpp1z/class-deduction77.C: New test.

gcc/testsuite/g++.dg/cpp1z/class-deduction77.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/cpp1z/class-deduction77.C b/gcc/testsuite/g++.dg/cpp1z/class-deduction77.C
new file mode 100644 (file)
index 0000000..c5462fb
--- /dev/null
@@ -0,0 +1,6 @@
+// { dg-do compile { target c++17 } }
+
+template <class...> struct A {};
+
+template <template <class> class... Ts>
+using B = A<decltype(Ts{0})...>;