]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/59635 ([c++1y] ICE with auto and ... as lambda parameter)
authorAdam Butcher <adam@jessamine.co.uk>
Mon, 6 Jan 2014 18:22:19 +0000 (18:22 +0000)
committerAdam Butcher <abutcher@gcc.gnu.org>
Mon, 6 Jan 2014 18:22:19 +0000 (18:22 +0000)
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

gcc/cp/ChangeLog
gcc/cp/lambda.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1y/pr59635.C [new file with mode: 0644]

index 1f5ddb52bcb24c5a4ffdeb3c2531499e71aac690..3bc68fc95df5ab32458382637deaa9cfe01e368d 100644 (file)
@@ -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
index 1855716532af9b471ca7a4ede3e2fd0643f56e1d..8bb820d0c3b0367dca12b2751d911ba39f3810ff 100644 (file)
@@ -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;
     }
 
index 7b7e558923fa66b1358f275ea31d6785e7d4bbf8..f0c4804341297ae9de8be7fd08a0c07d18a8689b 100644 (file)
@@ -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 (file)
index 0000000..0f06cc8
--- /dev/null
@@ -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" }
+