32 lines
810 B
Fortran
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
|