[Bug fortran/94137] New: [OpenACC] declare directive – currently *only* permitted after variable declaration
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 11 09:03:14 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94137
Bug ID: 94137
Summary: [OpenACC] declare directive – currently *only*
permitted after variable declaration
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: openacc, rejects-valid
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Target Milestone: ---
The spec has:
"A declare directive is used in the declaration section of a Fortran
subroutine, function, or module, or following a variable declaration
in C or C++."
Hence, the an arbitrary order is permitted in Fortran (but not in C/C++).
However, gfortran rejects the following as "A" is not known:
!$acc declare copy(A)
integer :: A
dimension :: A(20)
end
gfortran currently requires that the identifier (gfc_symbol) is known when
parsing the directive.
Additionally, some checks are already performed on the symbol during parsing. I
think those are fine and the critical checks are only performed during
resolution, but I might be wrong.
More information about the Gcc-bugs
mailing list