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.

Reply via email to