diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-02-26 11:18:31 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-02-26 11:18:31 +0100 |
commit | 8562191ad25bd094d393ef4e65b96542a14e8fab (patch) | |
tree | 8e1b8fa94ce9f66d17e1201d8d76dd7bc2282c49 | |
parent | f87f88974b9b8b1b8b3b06dfb64179b23e5a5bf6 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/gomp/pr84556.C | 14 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/vect/pr84556.cc | 21 |
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 (); +} |