blob: 44746b31b33854d3075cb68b707e4adb5ebdd78d [file] [log] [blame]
! { dg-do run }
!
! Tests that PR66408 stays fixed.
!
! Contributed by <werner.blokbuster@gmail.com>
!
module mytest
implicit none
type vary
character(:), allocatable :: string
end type vary
interface assignment(=)
module procedure char_eq_vary
end interface assignment(=)
contains
subroutine char_eq_vary(my_char,my_vary)
character(:), allocatable, intent(out) :: my_char
type(vary), intent(in) :: my_vary
my_char = my_vary%string
end subroutine char_eq_vary
end module mytest
program thistest
use mytest, only: vary, assignment(=)
implicit none
character(:), allocatable :: test_char
character(14), parameter :: str = 'example string'
type(vary) :: test_vary
type(vary) :: my_stuff
test_vary%string = str
if (test_vary%string .ne. str) STOP 1
! This previously gave a blank string.
my_stuff%string = test_vary
if (my_stuff%string .ne. str) STOP 2
test_char = test_vary
if (test_char .ne. str) STOP 3
my_stuff = test_vary
if (my_stuff%string .ne. str) STOP 4
end program thistest