r204143 - [OPENMP] DSA fix
Alexey Bataev
a.bataev at hotmail.com
Tue Mar 18 05:19:13 PDT 2014
Author: abataev
Date: Tue Mar 18 07:19:12 2014
New Revision: 204143
URL: http://llvm.org/viewvc/llvm-project?rev=204143&view=rev
Log:
[OPENMP] DSA fix
Modified:
cfe/trunk/lib/Sema/SemaOpenMP.cpp
Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=204143&r1=204142&r2=204143&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
+++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Tue Mar 18 07:19:12 2014
@@ -134,7 +134,22 @@ DSAStackTy::DSAVarData DSAStackTy::getDS
VarDecl *D) {
DSAVarData DVar;
if (Iter == Stack.rend() - 1) {
- DVar.CKind = OMPC_shared;
+ // OpenMP [2.9.1.1, Data-sharing Attribute Rules for Variables Referenced
+ // in a region but not in construct]
+ // File-scope or namespace-scope variables referenced in called routines
+ // in the region are shared unless they appear in a threadprivate
+ // directive.
+ // TODO
+ if (!D->isFunctionOrMethodVarDecl())
+ DVar.CKind = OMPC_shared;
+
+ // OpenMP [2.9.1.2, Data-sharing Attribute Rules for Variables Referenced
+ // in a region but not in construct]
+ // Variables with static storage duration that are declared in called
+ // routines in the region are shared.
+ if (D->hasGlobalStorage())
+ DVar.CKind = OMPC_shared;
+
return DVar;
}
More information about the cfe-commits
mailing list