mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 14:46:36 +00:00
[flang][cuda] Allow POINTER component to have device attribute (#126116)
This commit is contained in:
parent
d9500f5032
commit
b00b193728
@ -989,9 +989,9 @@ void CheckHelper::CheckObjectEntity(
|
||||
}
|
||||
break;
|
||||
case common::CUDADataAttr::Device:
|
||||
if (isComponent && !IsAllocatable(symbol)) {
|
||||
if (isComponent && !IsAllocatable(symbol) && !IsPointer(symbol)) {
|
||||
messages_.Say(
|
||||
"Component '%s' with ATTRIBUTES(DEVICE) must also be allocatable"_err_en_US,
|
||||
"Component '%s' with ATTRIBUTES(DEVICE) must also be allocatable or pointer"_err_en_US,
|
||||
symbol.name());
|
||||
}
|
||||
break;
|
||||
|
@ -54,6 +54,14 @@ module m
|
||||
!ERROR: Object 'um' with ATTRIBUTES(UNIFIED) must be declared in a host subprogram
|
||||
real, unified :: um
|
||||
|
||||
type :: t3
|
||||
!ERROR: Component 'r' with ATTRIBUTES(DEVICE) must also be allocatable or pointer
|
||||
real, device :: r
|
||||
real, device, pointer :: rp ! ok
|
||||
real, device, allocatable :: ra ! ok
|
||||
real, device, pointer, contiguous :: rpc ! ok
|
||||
end type
|
||||
|
||||
contains
|
||||
attributes(device) subroutine devsubr(n,da,rs)
|
||||
integer, intent(in) :: n
|
||||
|
Loading…
x
Reference in New Issue
Block a user