Index: flang/include/flang/Parser/parse-tree.h =================================================================== --- flang/include/flang/Parser/parse-tree.h +++ flang/include/flang/Parser/parse-tree.h @@ -3436,7 +3436,7 @@ // 2.13.9 depend-vec -> iterator [+/- depend-vec-length],...,iterator[...] struct OmpDependSinkVec { TUPLE_CLASS_BOILERPLATE(OmpDependSinkVec); - std::tuple> t; + std::tuple> t; }; // 2.13.9 depend-type -> IN | OUT | INOUT | SOURCE | SINK Index: flang/lib/Parser/openmp-parsers.cpp =================================================================== --- flang/lib/Parser/openmp-parsers.cpp +++ flang/lib/Parser/openmp-parsers.cpp @@ -113,8 +113,8 @@ TYPE_PARSER(construct( Parser{}, scalarIntConstantExpr)) -TYPE_PARSER( - construct(name, maybe(Parser{}))) +TYPE_PARSER(construct( + Parser{}, maybe(Parser{}))) TYPE_PARSER( construct("IN"_id >> pure(OmpDependenceType::Type::In) || Index: flang/lib/Parser/unparse.cpp =================================================================== --- flang/lib/Parser/unparse.cpp +++ flang/lib/Parser/unparse.cpp @@ -2017,7 +2017,7 @@ Walk(std::get(x.t)); } void Unparse(const OmpDependSinkVec &x) { - Walk(std::get(x.t)); + Walk(std::get(x.t)); Walk(std::get>(x.t)); } void Unparse(const OmpDependClause::InOut &x) { Index: flang/test/Semantics/omp-clause-validity01.f90 =================================================================== --- flang/test/Semantics/omp-clause-validity01.f90 +++ flang/test/Semantics/omp-clause-validity01.f90 @@ -482,7 +482,7 @@ ! !$omp target update from(arrayA) to(arrayB) ! !$omp target exit data map(from:arrayA) map(delete:arrayB) !$omp ordered depend(source) - ! !$omp ordered depend(sink:i-1) + !$omp ordered depend(sink:i-1) !$omp flush (c) !$omp flush acq_rel !$omp flush release