llvm-project/clang/lib/Sema
Joel E. Denny 7d5bc55433 [OpenMP] Permit map with DSA on combined directive
For `map`, the following restriction changed in OpenMP 5.0:

* OpenMP 4.5 [2.15.5.1, Restrictions]: "A list item cannot appear in
  both a map clause and a data-sharing attribute clause on the same
  construct.

* OpenMP 5.0 [2.19.7.1, Restrictions]: "A list item cannot appear in
  both a map clause and a data-sharing attribute clause on the same
  construct unless the construct is a combined construct."

This patch removes this restriction in the case of combined constructs
and OpenMP 5.0, and it updates Sema not to capture a scalar by copy in
the target region when `firstprivate` and `map` appear for that scalar
on a combined target construct.

This patch also adds a fixme to a test that now reveals that a
diagnostic about loop iteration variables is dropped in the case of
OpenMP 5.0.  That bug exists regardless of this patch's changes.

Reviewed By: ABataev, jdoerfert, hfinkel, kkwli0

Differential Revision: https://reviews.llvm.org/D65835

llvm-svn: 369619
2019-08-22 03:34:30 +00:00
..
AnalysisBasedWarnings.cpp [Attr] Support _attribute__ ((fallthrough)) 2019-08-20 17:16:49 +00:00
CMakeLists.txt Recommit [OpenCL] Move OpenCLBuiltins.td and remove unused include 2019-06-17 10:06:34 +00:00
CodeCompleteConsumer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CoroutineStmtBuilder.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DeclSpec.cpp [OpenCL] Update comments/diagnostics to refer to C++ for OpenCL 2019-07-18 10:02:35 +00:00
DelayedDiagnostic.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IdentifierResolver.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
JumpDiagnostics.cpp Re-check in clang support gun asm goto after fixing tests. 2019-06-03 15:57:25 +00:00
MultiplexExternalSemaSource.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OpenCLBuiltins.td [OpenCL] Add const, volatile and pointer builtin handling 2019-08-20 12:21:03 +00:00
ParsedAttr.cpp Allow standards-based attributes to have leading and trailing underscores. 2019-08-15 18:35:44 +00:00
Scope.cpp Un-revert "[coroutines][PR40978] Emit error for co_yield within catch block" 2019-03-25 00:53:10 +00:00
ScopeInfo.cpp PR42104: Support instantiations of lambdas that implicitly capture 2019-06-04 17:17:20 +00:00
Sema.cpp [OpenMP] Permit map with DSA on combined directive 2019-08-22 03:34:30 +00:00
SemaAccess.cpp Range-style std::find{,_if} -> llvm::find{,_if}. NFC 2019-03-31 08:48:19 +00:00
SemaAttr.cpp [LifetimeAnalysis] Support more STL idioms (template forward declaration and DependentNameType) 2019-08-21 22:08:59 +00:00
SemaCUDA.cpp Split ActOnCallExpr into an ActOnCallExpr to be called by the parser, 2019-05-08 01:36:36 +00:00
SemaCXXScopeSpec.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaCast.cpp [Sema] Check __builtin_bit_cast operand for completeness before materializing it. 2019-08-12 19:29:43 +00:00
SemaChecking.cpp [Sema][ObjC] Fix a -Wformat false positive with localizedStringForKey 2019-08-14 16:57:11 +00:00
SemaCodeComplete.cpp [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 2019-07-18 07:17:49 +00:00
SemaConsumer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SemaCoroutine.cpp Allow copy/move assignment operator to be coroutine as per N4775 2019-06-19 14:12:19 +00:00
SemaDecl.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaDeclAttr.cpp [LifetimeAnalysis] Support more STL idioms (template forward declaration and DependentNameType) 2019-08-21 22:08:59 +00:00
SemaDeclCXX.cpp Implement P1668R1 2019-08-19 17:39:59 +00:00
SemaDeclObjC.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaExceptionSpec.cpp [C++2a] Add __builtin_bit_cast, used to implement std::bit_cast 2019-07-02 18:28:13 +00:00
SemaExpr.cpp [OpenMP] Permit map with DSA on combined directive 2019-08-22 03:34:30 +00:00
SemaExprCXX.cpp [Sema][Typo] Fix assertion failure for expressions with multiple typos 2019-08-20 19:03:15 +00:00
SemaExprMember.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaExprObjC.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaFixItUtils.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SemaInit.cpp [LifetimeAnalysis] Support more STL idioms (template forward declaration and DependentNameType) 2019-08-21 22:08:59 +00:00
SemaLambda.cpp When determining whether a lambda-expression is implicitly constexpr, 2019-07-29 19:59:45 +00:00
SemaLookup.cpp [Sema][Typo] Fix assertion failure for expressions with multiple typos 2019-08-20 19:03:15 +00:00
SemaModule.cpp Fix parameter name comments using clang-tidy. NFC. 2019-07-16 04:46:31 +00:00
SemaObjCProperty.cpp clang: Fix typo in comment 2019-08-21 15:52:44 +00:00
SemaOpenMP.cpp [OpenMP] Permit map with DSA on combined directive 2019-08-22 03:34:30 +00:00
SemaOverload.cpp clang: Fix typo in comment 2019-08-21 15:49:21 +00:00
SemaPseudoObject.cpp Split ActOnCallExpr into an ActOnCallExpr to be called by the parser, 2019-05-08 01:36:36 +00:00
SemaStmt.cpp [OpenMP] Permit map with DSA on combined directive 2019-08-22 03:34:30 +00:00
SemaStmtAsm.cpp Delay diagnosing asm constraints that require immediates until after inlining 2019-08-06 22:41:22 +00:00
SemaStmtAttr.cpp [Clang] New loop pragma vectorize_predicate 2019-07-25 07:33:13 +00:00
SemaTemplate.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaTemplateDeduction.cpp Fix parameter name comments using clang-tidy. NFC. 2019-07-16 04:46:31 +00:00
SemaTemplateInstantiate.cpp PR42104: Support instantiations of lambdas that implicitly capture 2019-06-04 17:17:20 +00:00
SemaTemplateInstantiateDecl.cpp [LifetimeAnalysis] Support more STL idioms (template forward declaration and DependentNameType) 2019-08-21 22:08:59 +00:00
SemaTemplateVariadic.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
SemaType.cpp [OpenCL] Fix addr space deduction for pointers/references to arrays. 2019-08-19 11:43:16 +00:00
TreeTransform.h [OpenCL][PR42033] Fix addr space deduction with template parameters 2019-07-18 09:12:49 +00:00
TypeLocBuilder.cpp [NFC] avoid AlignedCharArray in clang 2019-07-29 23:12:48 +00:00
TypeLocBuilder.h [NFC] avoid AlignedCharArray in clang 2019-07-29 23:12:48 +00:00