! { dg-do run }
!
! PR fortran/57596
!
! Contributed by Valery Weber
!
PROGRAM main
  IMPLICIT NONE
  call get ()
  call get2 ()
contains
  SUBROUTINE get (c_val)
    CHARACTER( : ), INTENT( INOUT ), ALLOCATABLE, OPTIONAL :: c_val
    CHARACTER( 10 ) :: c_val_tmp
    if(present(c_val)) call abort()
  END SUBROUTINE get
  SUBROUTINE get2 (c_val)
    CHARACTER( : ), INTENT( OUT ), ALLOCATABLE, OPTIONAL :: c_val
    CHARACTER( 10 ) :: c_val_tmp
    if(present(c_val)) call abort()
  END SUBROUTINE get2
END PROGRAM main
