aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Clement (バレンタイン クレメン) <clementval@gmail.com>2024-04-19 15:55:24 -0700
committerGitHub <noreply@github.com>2024-04-19 15:55:24 -0700
commitc69efcd54879835085cf03a09e1eec28dc80e1d3 (patch)
tree29d74ab260f8d632ab19eb767a3df8ee4700a625
parentf433c3b38005701fdc219ae8c01e6af1b8bedba9 (diff)
downloadllvm-c69efcd54879835085cf03a09e1eec28dc80e1d3.zip
llvm-c69efcd54879835085cf03a09e1eec28dc80e1d3.tar.gz
llvm-c69efcd54879835085cf03a09e1eec28dc80e1d3.tar.bz2
[flang][cuda] Relax assumed size check on object with device attribute (#89466)
Assumed size arrays are apparently allowed with attribute device.
-rw-r--r--flang/lib/Semantics/check-declarations.cpp5
-rw-r--r--flang/test/Semantics/cuf03.cuf3
2 files changed, 1 insertions, 7 deletions
diff --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp
index adbd21d..6fcee96 100644
--- a/flang/lib/Semantics/check-declarations.cpp
+++ b/flang/lib/Semantics/check-declarations.cpp
@@ -948,11 +948,6 @@ void CheckHelper::CheckObjectEntity(
"Component '%s' with ATTRIBUTES(DEVICE) must also be allocatable"_err_en_US,
symbol.name());
}
- if (IsAssumedSizeArray(symbol)) {
- messages_.Say(
- "Object '%s' with ATTRIBUTES(DEVICE) may not be assumed size"_err_en_US,
- symbol.name());
- }
break;
case common::CUDADataAttr::Managed:
if (!IsAutomatic(symbol) && !IsAllocatable(symbol) &&
diff --git a/flang/test/Semantics/cuf03.cuf b/flang/test/Semantics/cuf03.cuf
index 020a172..472d53d 100644
--- a/flang/test/Semantics/cuf03.cuf
+++ b/flang/test/Semantics/cuf03.cuf
@@ -57,8 +57,7 @@ module m
contains
attributes(device) subroutine devsubr(n,da)
integer, intent(in) :: n
- !ERROR: Object 'da' with ATTRIBUTES(DEVICE) may not be assumed size
- real, device :: da(*)
+ real, device :: da(*) ! ok
real, managed :: ma(n) ! ok
!WARNING: Pointer 'dp' may not be associated in a device subprogram
real, device, pointer :: dp