aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2017-09-13 09:47:11 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2017-09-13 09:47:11 +0000
commitcaf3dcdf25eb77b655d7bdf8e55fff3eacd487f8 (patch)
treee9e70334fb23c70b9a1a6ffcfd4b6c7bd26443d8 /gcc
parent2fc1f4828b269cd54810abd6f05303b265279e82 (diff)
downloadgcc-caf3dcdf25eb77b655d7bdf8e55fff3eacd487f8.zip
gcc-caf3dcdf25eb77b655d7bdf8e55fff3eacd487f8.tar.gz
gcc-caf3dcdf25eb77b655d7bdf8e55fff3eacd487f8.tar.bz2
re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears in a lambda-expression)
2017-09-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/47226 * g++.dg/cpp0x/lambda/lambda-variadic4.C: New. * g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise. From-SVN: r252064
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic4.C11
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C19
3 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c0b0e9a..c7d26d6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/47226
+ * g++.dg/cpp0x/lambda/lambda-variadic4.C: New.
+ * g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise.
+
2017-09-13 Richard Biener <rguenther@suse.de>
PR middle-end/82128
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic4.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic4.C
new file mode 100644
index 0000000..ada25b3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic4.C
@@ -0,0 +1,11 @@
+// PR c++/47226
+// { dg-do compile { target c++11 } }
+
+void slurp(...) { }
+template<int ...N>
+void print() {
+ slurp([]() -> int {
+ (void) N; // or something fancy...
+ return 0;
+ }() ...);
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C
new file mode 100644
index 0000000..5196a18
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C
@@ -0,0 +1,19 @@
+// PR c++/47226
+// { dg-do compile { target c++11 } }
+
+template<class T>
+void print(const T&) {}
+
+template<class... T>
+void accept_all(T&&...){}
+
+template<class... T>
+void print_all(const T&... t)
+{
+ accept_all([&]()->int { print(t); return 0; }...);
+}
+
+int main()
+{
+ print_all(1, true, 'a');
+}