[flang-commits] [flang] [flang][cuda] Allow pointer object with the managed attribute (PR #177304)
via flang-commits
flang-commits at lists.llvm.org
Wed Jan 21 19:57:37 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-semantics
Author: Valentin Clement (バレンタイン クレメン) (clementval)
<details>
<summary>Changes</summary>
The reference compiler is accepting object with pointer and managed attributes.
---
Full diff: https://github.com/llvm/llvm-project/pull/177304.diff
2 Files Affected:
- (modified) flang/lib/Semantics/check-declarations.cpp (+2-2)
- (modified) flang/test/Semantics/cuf03.cuf (+1-2)
``````````diff
diff --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp
index 684c1dcc98fa3..8a616f444b437 100644
--- a/flang/lib/Semantics/check-declarations.cpp
+++ b/flang/lib/Semantics/check-declarations.cpp
@@ -1188,10 +1188,10 @@ void CheckHelper::CheckObjectEntity(
}
break;
case common::CUDADataAttr::Managed:
- if (!IsAutomatic(symbol) && !IsAllocatable(symbol) &&
+ if (!IsAutomatic(symbol) && !IsAllocatableOrPointer(symbol) &&
!details.isDummy() && !evaluate::IsExplicitShape(symbol)) {
messages_.Say(
- "Object '%s' with ATTRIBUTES(MANAGED) must also be allocatable, automatic, explicit shape, or a dummy argument"_err_en_US,
+ "Object '%s' with ATTRIBUTES(MANAGED) must also be allocatable, pointer, automatic, explicit shape, or a dummy argument"_err_en_US,
symbol.name());
}
break;
diff --git a/flang/test/Semantics/cuf03.cuf b/flang/test/Semantics/cuf03.cuf
index d2a189f419299..49b74e9a6e6a1 100644
--- a/flang/test/Semantics/cuf03.cuf
+++ b/flang/test/Semantics/cuf03.cuf
@@ -35,8 +35,7 @@ module m
real, managed :: mm ! ok
real, managed :: mmi = 1. ! ok
real, managed, allocatable :: mml ! ok
- !ERROR: Object 'mmp' with ATTRIBUTES(MANAGED) must also be allocatable, automatic, explicit shape, or a dummy argument
- real, managed, pointer :: mmp(:)
+ real, managed, pointer :: mmp(:) ! ok
real, managed, target :: mmt
!WARNING: Object 'mp' with ATTRIBUTES(PINNED) should also be allocatable [-Wcuda-usage]
real, pinned :: mp
``````````
</details>
https://github.com/llvm/llvm-project/pull/177304
More information about the flang-commits
mailing list