aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-02-26 11:18:31 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-02-26 11:18:31 +0100
commit8562191ad25bd094d393ef4e65b96542a14e8fab (patch)
tree8e1b8fa94ce9f66d17e1201d8d76dd7bc2282c49
parentf87f88974b9b8b1b8b3b06dfb64179b23e5a5bf6 (diff)
downloadgcc-8562191ad25bd094d393ef4e65b96542a14e8fab.zip
gcc-8562191ad25bd094d393ef4e65b96542a14e8fab.tar.gz
gcc-8562191ad25bd094d393ef4e65b96542a14e8fab.tar.bz2
re PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST)
PR c++/84556 * g++.dg/gomp/pr84556.C: New test. * g++.dg/vect/pr84556.cc: New test. From-SVN: r257986
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr84556.C14
-rw-r--r--gcc/testsuite/g++.dg/vect/pr84556.cc21
3 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3e0299c..ba3101d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2018-02-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/84556
+ * g++.dg/gomp/pr84556.C: New test.
+ * g++.dg/vect/pr84556.cc: New test.
+
2018-02-26 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR fortran/32957
diff --git a/gcc/testsuite/g++.dg/gomp/pr84556.C b/gcc/testsuite/g++.dg/gomp/pr84556.C
new file mode 100644
index 0000000..188d5a4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/gomp/pr84556.C
@@ -0,0 +1,14 @@
+// PR c++/84556
+// { dg-do compile }
+// { dg-options "-std=c++17 -fopenmp-simd" }
+
+void
+foo ()
+{
+ auto x = [] ()
+ {
+ #pragma omp simd
+ for (int i = 0; i < 8; ++i)
+ ;
+ };
+}
diff --git a/gcc/testsuite/g++.dg/vect/pr84556.cc b/gcc/testsuite/g++.dg/vect/pr84556.cc
new file mode 100644
index 0000000..e065553
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/pr84556.cc
@@ -0,0 +1,21 @@
+// PR c++/84556
+// { dg-do run { target c++11 } }
+// { dg-options "-O2 -fopenmp-simd" }
+// { dg-additional-options "-mavx" { target avx_runtime } }
+
+int
+main ()
+{
+ int y[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ auto x = [&y] ()
+ {
+ #pragma omp simd
+ for (int i = 0; i < 8; ++i)
+ y[i]++;
+ };
+ x ();
+ x ();
+ for (int i = 0; i < 8; ++i)
+ if (y[i] != i + 3)
+ __builtin_abort ();
+}