aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/module.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-07-10 09:12:37 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-07-10 09:12:37 +0200
commit0b27c3eda934bfc946d64fb72203001c5bee46a1 (patch)
treef53906c4b6e36f6adb263e98f301f5e3fd465d11 /gcc/fortran/module.c
parentc0cb9a9da0a7e257297deb25193cc9f113ee672a (diff)
downloadgcc-0b27c3eda934bfc946d64fb72203001c5bee46a1.zip
gcc-0b27c3eda934bfc946d64fb72203001c5bee46a1.tar.gz
gcc-0b27c3eda934bfc946d64fb72203001c5bee46a1.tar.bz2
re PR c++/86443 (ICEs on #pragma omp distribute parallel for with class iterators)
PR c++/86443 * gimplify.c (find_combined_omp_for): Add DATA argument, in addition to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. (gimplify_omp_for): For composite loops, move outer OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain TREE_LIST for both the original class iterator and the "last" helper var. Gimplify OMP_FOR_PRE_BODY before the outermost composite loop, remember has_decl_expr from outer composite loops for the innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. gcc/c-family/ * c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv to contain TREE_LIST for both the original class iterator and the "last" helper var. gcc/cp/ * semantics.c (handle_omp_for_class_iterator): Remove lastp argument, instead of setting *lastp turn orig_declv elt into a TREE_LIST. (finish_omp_for): Adjust handle_omp_for_class_iterator caller. * pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain TREE_LIST for both the original class iterator and the "last" helper var. libgomp/ * testsuite/libgomp.c++/for-15.C: New test. From-SVN: r262534
Diffstat (limited to 'gcc/fortran/module.c')
0 files changed, 0 insertions, 0 deletions