rt_gccstream/gcc/testsuite/gfortran.dg/char_result_12.f90

32 lines
810 B
Fortran

! { dg-do run }
! Tests the fix for PR29912, in which the call to JETTER
! would cause a segfault because a temporary was not being written.
!
! Contributed by Philip Mason <pmason@ricardo.com>
!
program testat
character(len=4) :: ctemp(2)
character(len=512) :: temper(2)
!
!------------------------
!'This was OK.'
!------------------------
temper(1) = 'doncaster'
temper(2) = 'uxbridge'
ctemp = temper
if (any (ctemp /= ["donc", "uxbr"])) call abort ()
!
!------------------------
!'This went a bit wrong.'
!------------------------
ctemp = jetter(1,2)
if (any (ctemp /= ["donc", "uxbr"])) call abort ()
contains
function jetter(id1,id2)
character(len=512) :: jetter(id1:id2)
jetter(id1) = 'doncaster'
jetter(id2) = 'uxbridge'
end function jetter
end program testat