summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/mapping_2.f90
blob: 9104184a59bb4df07b1cd4a0ab57d86b9a12f30d (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
32
! { dg-do run }
! Tests the fix for PR33998, in which the chain of expressions
! determining the character length of my_string were not being
! resolved by the formal to actual mapping.
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
!
module test
   implicit none
   contains
      function my_string(x)
         integer i
         real, intent(in) :: x(:)
         character(0) h4(1:minval([(i,i=30,32), 15]))
         character(0) sv1(size(x,1):size(h4))
         character(0) sv2(2*lbound(sv1,1):size(h4))
         character(lbound(sv2,1)-3) my_string

         do i = 1, len(my_string)
            my_string(i:i) = achar(modulo(i-1,10)+iachar('0'))
         end do
      end function my_string
end module test

program len_test
   use test
   implicit none
   real x(7)

   if (my_string(x) .ne. "01234567890") call abort ()
end program len_test
! { dg-final { cleanup-modules "test" } }