aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2017-10-04 20:34:03 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2017-10-04 20:34:03 +0000
commit968e56bf7f0a064fdc234a6b13246b02724a6d4a (patch)
treefac62a2677099e0d7f9c20730192d3dc76c9ba42
parenta1440fa8fa510a74707843c2ae6104c2a99ff804 (diff)
downloadgcc-968e56bf7f0a064fdc234a6b13246b02724a6d4a.zip
gcc-968e56bf7f0a064fdc234a6b13246b02724a6d4a.tar.gz
gcc-968e56bf7f0a064fdc234a6b13246b02724a6d4a.tar.bz2
re PR c++/78018 ([C++14] "internal compiler error: Segmentation fault" with templates and lambdas)
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78018 * g++.dg/cpp1y/lambda-generic-78018.C: New. From-SVN: r253430
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/lambda-generic-78018.C37
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8e00f32..6e8680b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,9 @@
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/78018
+ * g++.dg/cpp1y/lambda-generic-78018.C: New.
+
+2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
Andrew Pinski <apinski@cavium.com>
PR c++/71946
diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-78018.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-78018.C
new file mode 100644
index 0000000..6cf9c59
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-78018.C
@@ -0,0 +1,37 @@
+// PR c++/78018
+// { dg-do compile { target c++14 } }
+
+struct A
+{
+ void f1();
+
+ template <typename F>
+ void f2(F f);
+
+ template<typename T>
+ void f3(T t);
+};
+
+struct B
+{
+ template<typename L>
+ void f(L) { }
+};
+
+void A::f1()
+{
+ f2([&] (auto t) { f3(t); } );
+}
+
+template <typename F>
+void A::f2(F f)
+{
+ B b;
+ f(b);
+}
+
+template<typename T>
+void A::f3(T t)
+{
+}
+