[PATCH] D95470: [flang][openacc] Fix clause restriction for exit data directive

Valentin Clement via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 27 07:07:30 PST 2021


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGb65896ef8b5a: [flang][openacc] Fix clause restriction for exit data directive (authored by clementval).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95470/new/

https://reviews.llvm.org/D95470

Files:
  flang/test/Semantics/OpenACC/acc-data.f90
  llvm/include/llvm/Frontend/OpenACC/ACC.td


Index: llvm/include/llvm/Frontend/OpenACC/ACC.td
===================================================================
--- llvm/include/llvm/Frontend/OpenACC/ACC.td
+++ llvm/include/llvm/Frontend/OpenACC/ACC.td
@@ -492,9 +492,11 @@
 // 2.14.7
 def ACC_ExitData : Directive<"exit data"> {
   let allowedClauses = [
+    VersionedClause<ACCC_Wait>
+  ];
+  let allowedOnceClauses = [
     VersionedClause<ACCC_Async>,
     VersionedClause<ACCC_If>,
-    VersionedClause<ACCC_Wait>,
     VersionedClause<ACCC_Finalize>
   ];
   let requiredClauses = [
Index: flang/test/Semantics/OpenACC/acc-data.f90
===================================================================
--- flang/test/Semantics/OpenACC/acc-data.f90
+++ flang/test/Semantics/OpenACC/acc-data.f90
@@ -75,6 +75,9 @@
 
   !$acc exit data delete(aa) finalize
 
+  !ERROR: At most one FINALIZE clause can appear on the EXIT DATA directive
+  !$acc exit data delete(aa) finalize finalize
+
   !$acc exit data detach(cc)
 
   !$acc exit data copyout(bb)
@@ -83,8 +86,14 @@
 
   !$acc exit data delete(aa) if(ifCondition)
 
+  !ERROR: At most one IF clause can appear on the EXIT DATA directive
+  !$acc exit data delete(aa) if(ifCondition) if(.TRUE.)
+
   !$acc exit data delete(aa) async
 
+  !ERROR: At most one ASYNC clause can appear on the EXIT DATA directive
+  !$acc exit data delete(aa) async async
+
   !$acc exit data delete(aa) async(async1)
 
   !$acc exit data delete(aa) async(1)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95470.319565.patch
Type: text/x-patch
Size: 1447 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210127/846d6ef1/attachment.bin>


More information about the llvm-commits mailing list