On Fri, Sep 17, 2021 at 11:42:13PM +0200, Tobias Burnus wrote: > Fortran/OpenMP: unconstrained/reproducible ordered modifier > > gcc/fortran/ChangeLog: > > * gfortran.h (gfc_omp_clauses): Add order_unconstrained. > * dump-parse-tree.c (show_omp_clauses): Dump it. > * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible > modifiers to ordered(concurrent). > (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause. > (resolve_omp_clauses): Reject ordered + order on same directive. > * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass > on unconstrained modifier of ordered(concurrent). > > gcc/testsuite/ChangeLog: > > * gfortran.dg/gomp/order-5.f90: New test. > * gfortran.dg/gomp/order-6.f90: New test. > * gfortran.dg/gomp/order-7.f90: New test. > * gfortran.dg/gomp/order-8.f90: New test. > * gfortran.dg/gomp/order-9.f90: New test.
Ok, thanks. > @@ -5892,6 +5893,8 @@ gfc_split_omp_clauses (gfc_code *code, > = code->ext.omp_clauses->collapse; > clausesa[GFC_OMP_SPLIT_DISTRIBUTE].order_concurrent > = code->ext.omp_clauses->order_concurrent; So the FE was splitting the order clause to distribute already before, perhaps we should undo that for gcc 11 which doesn't claim any OpenMP 5.1 support. The difference is e.g. the distribute parallel do order(concurrent) copyin(thr) case which used to be ok in 5.0 and is not in 5.1. Jakub