From: Adam Butcher Date: Mon, 6 Jan 2014 18:22:19 +0000 (+0000) Subject: re PR c++/59635 ([c++1y] ICE with auto and ... as lambda parameter) X-Git-Tag: releases/gcc-4.9.0~1816 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c8c627389238b024de53401676139ffc6010b4e;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1f5ddb52bcb2..3bc68fc95df5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-06 Adam Butcher + + 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 PR c++/58950 diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index 1855716532af..8bb820d0c3b0 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 7b7e558923fa..f0c480434129 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-06 Adam Butcher + + PR c++/59635 + * g++.dg/cpp1y/pr59635.C: New testcase. + 2014-01-06 Martin Jambor 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 000000000000..0f06cc8f5ecc --- /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" } +