diff --git a/flang/test/Semantics/OpenACC/acc-data.f90 b/flang/test/Semantics/OpenACC/acc-data.f90 index ac49532c495d5..473b91d555cea 100644 --- a/flang/test/Semantics/OpenACC/acc-data.f90 +++ b/flang/test/Semantics/OpenACC/acc-data.f90 @@ -187,6 +187,17 @@ program openacc_data_validity !$acc data copy(aa) device_type(default) wait !$acc end data + !ERROR: At most one ASYNC clause can appear on the DATA directive or in group separated by the DEVICE_TYPE clause + !$acc data copy(aa) async(async1) async(2) + !$acc end data + + !$acc data copy(aa) async(async1) device_type(multicore) async(2) ! ok + !$acc end data + + !ERROR: At most one ASYNC clause can appear on the DATA directive or in group separated by the DEVICE_TYPE clause + !$acc data copy(aa) async(async1) device_type(multicore) async(2) async(3) + !$acc end data + do i = 1, 100 !$acc data copy(aa) !ERROR: CYCLE to construct outside of DATA construct is not allowed diff --git a/llvm/include/llvm/Frontend/OpenACC/ACC.td b/llvm/include/llvm/Frontend/OpenACC/ACC.td index 7dc97e6c89bee..d372fc221e4b4 100644 --- a/llvm/include/llvm/Frontend/OpenACC/ACC.td +++ b/llvm/include/llvm/Frontend/OpenACC/ACC.td @@ -284,11 +284,11 @@ def ACC_Atomic : Directive<"atomic"> { // 2.6.5 def ACC_Data : Directive<"data"> { let allowedOnceClauses = [ - VersionedClause, VersionedClause, VersionedClause ]; let allowedClauses = [ + VersionedClause, VersionedClause, VersionedClause ];