aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2019-03-07 20:49:42 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2019-03-07 20:49:42 +0000
commitc7163b643e48094f4a7e97c158cb11ca8560257b (patch)
tree3a8fe8580b6c03a9ec8b6000bb3728d4267ebd57
parent90a0bf4e029b1ff3d7e7dfc6f98da88356587959 (diff)
downloadgcc-c7163b643e48094f4a7e97c158cb11ca8560257b.zip
gcc-c7163b643e48094f4a7e97c158cb11ca8560257b.tar.gz
gcc-c7163b643e48094f4a7e97c158cb11ca8560257b.tar.bz2
re PR c++/84518 (ICE with lambda capturing broken variable)
2019-03-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84518 * g++.dg/cpp0x/lambda/lambda-ice30.C: New. * g++.dg/cpp0x/lambda/lambda-ice31.C: Likewise. From-SVN: r269469
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice30.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice31.C8
3 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e2b22ba..0a90257 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-03-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/84518
+ * g++.dg/cpp0x/lambda/lambda-ice30.C: New.
+ * g++.dg/cpp0x/lambda/lambda-ice31.C: Likewise.
+
2019-03-07 Jakub Jelinek <jakub@redhat.com>
PR translation/79999
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice30.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice30.C
new file mode 100644
index 0000000..46350bd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice30.C
@@ -0,0 +1,13 @@
+// PR c++/84518
+// { dg-do compile { target c++11 } }
+
+template<int> void foo()
+{
+ int x[=]; // { dg-error "expected" }
+ [&x]{};
+}
+
+void bar()
+{
+ foo<0>();
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice31.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice31.C
new file mode 100644
index 0000000..54ded7b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice31.C
@@ -0,0 +1,8 @@
+// PR c++/84518
+// { dg-do compile { target c++11 } }
+
+template<typename T> void foo()
+{
+ T x[=]; // { dg-error "expected" }
+ [&x]{};
+}