diff options
author | Vitaly Buka <vitalybuka@google.com> | 2024-04-19 15:41:50 -0700 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2024-04-19 15:41:50 -0700 |
commit | fb6bcedb3de596c2ddf56fd0001e3a6624b62257 (patch) | |
tree | 32fa165efef87810ce2e68da89ad23cfc545d52a /flang/lib/Semantics | |
parent | 31cb633e504579e57f6e01a4f8187089b87f1e2e (diff) | |
parent | d9169ffaf7c01691644537d3443240748b107359 (diff) | |
download | llvm-fb6bcedb3de596c2ddf56fd0001e3a6624b62257.zip llvm-fb6bcedb3de596c2ddf56fd0001e3a6624b62257.tar.gz llvm-fb6bcedb3de596c2ddf56fd0001e3a6624b62257.tar.bz2 |
[𝘀𝗽𝗿] changes introduced through rebaseusers/vitalybuka/spr/main.sancov-apply-branch-weights-when-checking-counters
Created using spr 1.3.4
[skip ci]
Diffstat (limited to 'flang/lib/Semantics')
-rw-r--r-- | flang/lib/Semantics/check-allocate.cpp | 14 | ||||
-rw-r--r-- | flang/lib/Semantics/check-declarations.cpp | 4 |
2 files changed, 16 insertions, 2 deletions
diff --git a/flang/lib/Semantics/check-allocate.cpp b/flang/lib/Semantics/check-allocate.cpp index a7244e1..b4c5660 100644 --- a/flang/lib/Semantics/check-allocate.cpp +++ b/flang/lib/Semantics/check-allocate.cpp @@ -611,6 +611,20 @@ bool AllocationCheckerHelper::RunChecks(SemanticsContext &context) { return false; } } + if (allocateInfo_.gotPinned) { + std::optional<common::CUDADataAttr> cudaAttr{GetCUDADataAttr(ultimate_)}; + if (!cudaAttr || *cudaAttr != common::CUDADataAttr::Pinned) { + context.Say(name_.source, + "Object in ALLOCATE must have PINNED attribute when PINNED option is specified"_err_en_US); + } + } + if (allocateInfo_.gotStream) { + std::optional<common::CUDADataAttr> cudaAttr{GetCUDADataAttr(ultimate_)}; + if (!cudaAttr || *cudaAttr != common::CUDADataAttr::Device) { + context.Say(name_.source, + "Object in ALLOCATE must have DEVICE attribute when STREAM option is specified"_err_en_US); + } + } return RunCoarrayRelatedChecks(context); } diff --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp index 875929e..adbd21d 100644 --- a/flang/lib/Semantics/check-declarations.cpp +++ b/flang/lib/Semantics/check-declarations.cpp @@ -956,9 +956,9 @@ void CheckHelper::CheckObjectEntity( break; case common::CUDADataAttr::Managed: if (!IsAutomatic(symbol) && !IsAllocatable(symbol) && - !details.isDummy()) { + !details.isDummy() && !evaluate::IsExplicitShape(symbol)) { messages_.Say( - "Object '%s' with ATTRIBUTES(MANAGED) must also be allocatable, automatic, or a dummy argument"_err_en_US, + "Object '%s' with ATTRIBUTES(MANAGED) must also be allocatable, automatic, explicit shape, or a dummy argument"_err_en_US, symbol.name()); } break; |