diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-05-09 10:48:13 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-05-09 10:48:13 +0000 |
commit | a8f8d3b01e94c582346e5f3fa1f22de0a1834062 (patch) | |
tree | ce67eeb5b6dfa8a8468cbf32bdc9ce3029d516f1 /clang/lib/Sema/SemaOpenMP.cpp | |
parent | b32a02b5bc6a335f2ac9bbfe1bebd8ab0fa29184 (diff) | |
download | bcm5719-llvm-a8f8d3b01e94c582346e5f3fa1f22de0a1834062.tar.gz bcm5719-llvm-a8f8d3b01e94c582346e5f3fa1f22de0a1834062.zip |
Revert "[OPENMP]Fix PR41768: check DSA for globals with `default(none)` clauses."
This has introduced (exposed?) a crash in clang sema,
that does not happen without this patch.
I'll followup in the original bugreport and commit with reproducer.
This reverts commit r360061.
llvm-svn: 360327
Diffstat (limited to 'clang/lib/Sema/SemaOpenMP.cpp')
-rw-r--r-- | clang/lib/Sema/SemaOpenMP.cpp | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 276f1506c4b..0aebd8e03a6 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -1777,15 +1777,10 @@ VarDecl *Sema::isOpenMPCapturedDecl(ValueDecl *D) { DSAStack->getTopDSA(D, DSAStack->isClauseParsingMode()); if (DVarPrivate.CKind != OMPC_unknown && isOpenMPPrivate(DVarPrivate.CKind)) return VD ? VD : cast<VarDecl>(DVarPrivate.PrivateCopy->getDecl()); - if (VD && DSAStack->getDefaultDSA() == DSA_none) - return VD; DVarPrivate = DSAStack->hasDSA(D, isOpenMPPrivate, [](OpenMPDirectiveKind) { return true; }, DSAStack->isClauseParsingMode()); - // The variable is not private or it is the variable in the directive with - // default(none) clause and not used in any clause. - if (DVarPrivate.CKind != OMPC_unknown || - (VD && DSAStack->getDefaultDSA() == DSA_none)) + if (DVarPrivate.CKind != OMPC_unknown) return VD ? VD : cast<VarDecl>(DVarPrivate.PrivateCopy->getDecl()); } return nullptr; @@ -4189,7 +4184,6 @@ StmtResult Sema::ActOnOpenMPExecutableDirective( for (const auto &P : VarsWithInheritedDSA) { Diag(P.second->getExprLoc(), diag::err_omp_no_dsa_for_variable) << P.first << P.second->getSourceRange(); - Diag(DSAStack->getDefaultDSALocation(), diag::note_omp_default_dsa_none); } ErrorFound = !VarsWithInheritedDSA.empty() || ErrorFound; |