Skip to content

Commit c362992

Browse files
authored
[flang][openacc] Allow constant variable in data clause (#71580)
The check introduced in #71444 was to restrictive and this patch relax it so data clause can accept constant.
1 parent 66a7675 commit c362992

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

flang/lib/Semantics/resolve-directives.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1123,7 +1123,8 @@ void AccAttributeVisitor::AllowOnlyVariable(const parser::AccObject &object) {
11231123
common::visitors{
11241124
[&](const parser::Designator &designator) {
11251125
const auto &name{GetLastName(designator)};
1126-
if (name.symbol && !semantics::IsVariableName(*name.symbol)) {
1126+
if (name.symbol && !semantics::IsVariableName(*name.symbol) &&
1127+
!semantics::IsNamedConstant(*name.symbol)) {
11271128
context_.Say(designator.source,
11281129
"Only variables are allowed in data clauses on the %s "
11291130
"directive"_err_en_US,

flang/test/Semantics/OpenACC/acc-data.f90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,4 +210,10 @@ subroutine sub4(t)
210210
!$acc data copy(t%t1_proc)
211211
!$acc end data
212212
end subroutine
213+
214+
subroutine sub5()
215+
integer, parameter :: iparam = 1024
216+
!$acc data copyin(iparam)
217+
!$acc end data
218+
end subroutine
213219
end module

0 commit comments

Comments
 (0)