[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