summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/char_result_12.f90
blob: 6612dcf888fa5e94351cbf7a2d9bc72152431816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
! { 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