On Wed, Mar 17, 2021 at 07:19:29PM +0100, Tobias Burnus wrote: > @@ -1831,6 +1852,7 @@ show_omp_node (int level, gfc_code *c) > case EXEC_OMP_FLUSH: name = "FLUSH"; break; > case EXEC_OMP_MASTER: name = "MASTER"; break; > case EXEC_OMP_ORDERED: name = "ORDERED"; break; > + case EXEC_OMP_DEPOBJ: name = "DEPBOBJ"; break;
s/DEPBOBJ/DEPOBJ/ > + || omp_clauses->depobj->ts.kind != 2*gfc_index_integer_kind Formatting (several times), I think we should use 2 * gfc_index_integer_kind > --- a/gcc/fortran/trans-openmp.c > +++ b/gcc/fortran/trans-openmp.c > @@ -2545,6 +2545,8 @@ gfc_trans_omp_clauses (stmtblock_t *block, > gfc_omp_clauses *clauses, > tree decl = gfc_trans_omp_variable (n->sym, false); > if (gfc_omp_privatize_by_reference (decl)) > decl = build_fold_indirect_ref (decl); > + if (POINTER_TYPE_P (TREE_TYPE (decl))) > + decl = build_fold_indirect_ref (decl); I'm a little bit worried about this, are you sure it won't affect anything but depobj? > + int k = -1; /* omp_clauses->destroy */ > + if (!code->ext.omp_clauses->destroy) > + switch (code->ext.omp_clauses->depobj_update != OMP_DEPEND_UNSET > + ? code->ext.omp_clauses->depobj_update : n->u.depend_op) > + { > + case OMP_DEPEND_IN: k = GOMP_DEPEND_IN; break; > + case OMP_DEPEND_OUT: k = GOMP_DEPEND_IN; break; > + case OMP_DEPEND_INOUT: k = GOMP_DEPEND_IN; break; > + case OMP_DEPEND_MUTEXINOUTSET: k = GOMP_DEPEND_MUTEXINOUTSET; break; > + case OMP_DEPEND_DEPOBJ: k = GOMP_DEPEND_MUTEXINOUTSET; break; Can depobj_update be OMP_DEPEND_DEPOBJ ? Otherwise LGTM. Jakub