re PR c++/79474 (Multiple definitions of user-defined conversion operator cause ICE...
authorPaolo Carlini <paolo.carlini@oracle.com>
Wed, 18 Oct 2017 07:24:50 +0000 (07:24 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 18 Oct 2017 07:24:50 +0000 (07:24 +0000)
2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79474
* g++.dg/cpp1y/auto-fn44.C: New.

From-SVN: r253841

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1y/auto-fn44.C [new file with mode: 0644]

index b731059a8cb5b4db322e9ad7849d3b308b36d451..d5fc8d8e44ade89d73a374dcaafc8549204b62fc 100644 (file)
@@ -1,3 +1,8 @@
+2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/79474
+       * g++.dg/cpp1y/auto-fn44.C: New.
+
 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.dg/attr-alloc_size-11.c: UnXFAIL for visium-*-*.
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn44.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn44.C
new file mode 100644 (file)
index 0000000..e35215d
--- /dev/null
@@ -0,0 +1,12 @@
+// PR c++/79474
+// { dg-do compile { target c++14 } }
+
+struct Funject
+{  
+  operator auto() { return +[](bool b) {return b;}; }
+  operator auto() { return +[](bool b, bool, bool) {return b;}; }  // { dg-error "cannot be overloaded" }
+};
+
+Funject fun;
+auto bbb = fun(true);
+auto bbbb = fun(true, false, true);  // { dg-error "no match" }