diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2017-09-13 09:47:11 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2017-09-13 09:47:11 +0000 |
commit | caf3dcdf25eb77b655d7bdf8e55fff3eacd487f8 (patch) | |
tree | e9e70334fb23c70b9a1a6ffcfd4b6c7bd26443d8 | |
parent | 2fc1f4828b269cd54810abd6f05303b265279e82 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic4.C | 11 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C | 19 |
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'); +} |