[PATCH] D86051: [flang]Add Semantic Checks for OpenMP Allocate Clause

Kiran Chandramohan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 09:53:30 PDT 2020


kiranchandramohan added a comment.

Thanks Rin for making the changes. A few more comments.



================
Comment at: flang/lib/Semantics/resolve-directives.cpp:231
   bool Pre(const parser::OpenMPBlockConstruct &);
-  void Post(const parser::OpenMPBlockConstruct &) { PopContext(); }
+  void Post(const parser::OpenMPBlockConstruct &) {
+    std::set<SymbolRef>::iterator it = allocateObjects_.begin();
----------------
Do all OpenMPBlockConstructs have allocate clause?
If not should we restrict this check to only those OpenMPBlockConstructs which have allocate clause?


================
Comment at: flang/lib/Semantics/resolve-directives.cpp:306
+  SymbolSet allocateObjects_;
+  void AddAllocateObject(SymbolRef object) { allocateObjects_.insert(object); }
+
----------------
Is a line required above?


================
Comment at: flang/lib/Semantics/resolve-directives.cpp:335-337
+      (object.test(Symbol::Flag::OmpPrivate) ||
+          object.test(Symbol::Flag::OmpFirstPrivate) ||
+          object.test(Symbol::Flag::OmpLastPrivate))) {
----------------
Can this check be done before the find on dataSharingAttributeObjects?


================
Comment at: flang/test/Semantics/omp-resolve06.f90:17
+  !$omp end parallel
+end
----------------
We need more error tests.
Use a mix of firstprivate, lastprivate + allocate and private with same and different variables.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86051



More information about the llvm-commits mailing list