diff options
author | Adam Butcher <adam@jessamine.co.uk> | 2014-01-06 18:22:19 +0000 |
---|---|---|
committer | Adam Butcher <abutcher@gcc.gnu.org> | 2014-01-06 18:22:19 +0000 |
commit | 2c8c627389238b024de53401676139ffc6010b4e (patch) | |
tree | a86bf4b8a0d5e365b5b59510260bc02e5aebc430 /gcc | |
parent | 0225cc0f1fe37a4aa0e67c2ca1806a082e8953cd (diff) | |
download | gcc-2c8c627389238b024de53401676139ffc6010b4e.zip gcc-2c8c627389238b024de53401676139ffc6010b4e.tar.gz gcc-2c8c627389238b024de53401676139ffc6010b4e.tar.bz2 |
re PR c++/59635 ([c++1y] ICE with auto and ... as lambda parameter)
Fix PR c++/59635
PR c++/59635
* cp/lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
function as unimplemented for generic lambdas with varargs.
* g++.dg/cpp1y/pr59635.C: New testcase.
From-SVN: r206368
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/lambda.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/pr59635.C | 9 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1f5ddb5..3bc68fc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-06 Adam Butcher <adam@jessamine.co.uk> + + PR c++/59635 + * cp/lambda.c (maybe_add_lambda_conv_op): Handle marking conversion + function as unimplemented for generic lambdas with varargs. + 2014-01-03 Marc Glisse <marc.glisse@inria.fr> PR c++/58950 diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index 1855716..8bb820d 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -970,7 +970,7 @@ maybe_add_lambda_conv_op (tree type) the conversion op is used. */ if (varargs_function_p (callop)) { - DECL_DELETED_FN (fn) = 1; + DECL_DELETED_FN (STRIP_TEMPLATE (fn)) = 1; return; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7b7e558..f0c4804 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-06 Adam Butcher <adam@jessamine.co.uk> + + PR c++/59635 + * g++.dg/cpp1y/pr59635.C: New testcase. + 2014-01-06 Martin Jambor <mjambor@suse.cz> PR ipa/59008 diff --git a/gcc/testsuite/g++.dg/cpp1y/pr59635.C b/gcc/testsuite/g++.dg/cpp1y/pr59635.C new file mode 100644 index 0000000..0f06cc8 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/pr59635.C @@ -0,0 +1,9 @@ +// { dg-do compile } +// { dg-options "-std=c++1y" } + +// PR c++/59635 + +auto f = [] (auto, ...) { return 0; }; + +int (*p) (int, ...) = f; // { dg-message "unimplemented" } + |