[Bug fortran/38506] -std=f*: Reject scalar character to array dummy in several cases
markeggleston at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 10 12:03:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38506
markeggleston at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |markeggleston at gcc dot gnu.org
--- Comment #2 from markeggleston at gcc dot gnu.org ---
Quick modification to kind=4:
MODULE modtest
USE ISO_C_BINDING
INTERFACE One
MODULE PROCEDURE Two
END INTERFACE
CONTAINS
SUBROUTINE Two( chr ) bind(C)
CHARACTER(LEN=1, KIND=4), DIMENSION(*) :: chr
END SUBROUTINE Two
END MODULE modtest
PROGRAM main
USE ISO_C_BINDING
USE modtest
CHARACTER(LEN=4, KIND=4) :: chrScalar
chrScalar = 'Scal'
CALL One( chrScalar )
CALL Two( chrScalar )
END PROGRAM main
gfortran -std=f2003 results in:
17 | CALL One( chrScalar )
| 1
Error: There is no specific subroutine for the generic 'one' at (1)
pr34506.f03:18:12:
18 | CALL Two( chrScalar )
| 1
Error: Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual
argument with array dummy argument 'chr' at (1)
Changing only the kind of chrScalar results in:
17 | CALL One( chrScalar )
| 1
Error: There is no specific subroutine for the generic 'one' at (1)
pr34506.f03:18:23:
18 | CALL Two( chrScalar )
| 1
Error: Type mismatch in argument 'chr' at (1); passed CHARACTER(4,4) to
CHARACTER(1)
So, is this fixed? If so its status needs updating.
More information about the Gcc-bugs
mailing list