blob: fd0ff9b1bf4e803daccf346a2922bda114dff980 [file] [log] [blame]
! { dg-do run }
!
! Test the fix for PR69423.
!
! Contributed by Antony Lewis <antony@cosmologist.info>
!
program tester
character(LEN=:), allocatable :: S
S= test(2)
if (len(S) .ne. 4) STOP 1
if (S .ne. "test") STOP 2
if (allocated (S)) deallocate (S)
S= test2(2)
if (len(S) .ne. 4) STOP 3
if (S .ne. "test") STOP 4
if (allocated (S)) deallocate (S)
contains
function test(alen)
character(LEN=:), allocatable :: test
integer alen, i
do i = alen, 1, -1
test = 'test'
exit
end do
! This line would print nothing when compiled with -O1 and higher.
! print *, len(test),test
if (len(test) .ne. 4) STOP 5
if (test .ne. "test") STOP 6
end function test
function test2(alen) result (test)
character(LEN=:), allocatable :: test
integer alen, i
do i = alen, 1, -1
test = 'test'
exit
end do
! This worked before the fix.
! print *, len(test),test
if (len(test) .ne. 4) STOP 7
if (test .ne. "test") STOP 8
end function test2
end program tester