[PATCH] D29026: [OpenMP] DSAChecker bug fix for combined directives.

Phabricator via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 23 07:50:03 PST 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL292794: [OpenMP] DSAChecker bug fix for combined directives. (authored by arpith).

Changed prior to commit:
  https://reviews.llvm.org/D29026?vs=85382&id=85393#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D29026

Files:
  cfe/trunk/lib/Sema/SemaOpenMP.cpp
  cfe/trunk/test/OpenMP/target_parallel_default_messages.cpp


Index: cfe/trunk/test/OpenMP/target_parallel_default_messages.cpp
===================================================================
--- cfe/trunk/test/OpenMP/target_parallel_default_messages.cpp
+++ cfe/trunk/test/OpenMP/target_parallel_default_messages.cpp
@@ -23,5 +23,8 @@
   foo();
   #pragma omp target parallel default(shared)
   ++argc;
+  #pragma omp target parallel default(none)
+  #pragma omp parallel default(shared)
+  ++argc;
   return 0;
 }
Index: cfe/trunk/lib/Sema/SemaOpenMP.cpp
===================================================================
--- cfe/trunk/lib/Sema/SemaOpenMP.cpp
+++ cfe/trunk/lib/Sema/SemaOpenMP.cpp
@@ -2268,7 +2268,11 @@
 
     // Check default data sharing attributes for referenced variables.
     DSAAttrChecker DSAChecker(DSAStack, *this, cast<CapturedStmt>(AStmt));
-    DSAChecker.Visit(cast<CapturedStmt>(AStmt)->getCapturedStmt());
+    int ThisCaptureLevel = getOpenMPCaptureLevels(Kind);
+    Stmt *S = AStmt;
+    while (--ThisCaptureLevel >= 0)
+      S = cast<CapturedStmt>(S)->getCapturedStmt();
+    DSAChecker.Visit(S);
     if (DSAChecker.isErrorFound())
       return StmtError();
     // Generate list of implicitly defined firstprivate variables.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29026.85393.patch
Type: text/x-patch
Size: 1212 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170123/fc3bef1b/attachment.bin>


More information about the cfe-commits mailing list