PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gfortran.dg / maxval_char_1.f90
blobce663a34dc105415b3eeca89843b3ffe75574b40
1 ! { dg-do run }
2 program main
3 implicit none
4 integer, parameter :: n=5, m=3
5 character(len=5), dimension(n) :: a
6 character(len=5), dimension(n,m) :: b
7 character(len=5) :: res
8 integer, dimension(n,m) :: v
9 real, dimension(n,m) :: r
10 integer :: i,j
11 logical, dimension(n,m) :: mask
12 character(len=5), dimension(:,:), allocatable :: empty
13 character(len=5) , parameter :: all_zero = achar(0) // achar(0) // achar(0) // achar(0) // achar(0)
14 logical :: smask
16 write (unit=a,fmt='(I5.5)') (21-i*i+6*i,i=1,n)
17 res = maxval(a)
18 if (res /= '00030') STOP 1
19 res = maxval(a,dim=1)
20 if (res /= '00030') STOP 2
22 call random_number(r)
23 v = int(r * 100)
24 if (count (v>20) > 1) exit
25 end do
26 write (unit=b,fmt='(I5.5)') v
27 write (unit=res,fmt='(I5.5)') maxval(v)
28 if (res /= maxval(b)) STOP 3
29 smask = .true.
30 if (res /= maxval(b, smask)) STOP 4
31 smask = .false.
32 if (all_zero /= maxval(b, smask)) STOP 5
34 mask = v > 20
35 write (unit=res,fmt='(I5.5)') maxval(v,mask)
36 if (res /= maxval(b, mask)) STOP 6
37 mask = .false.
38 if (maxval(b, mask) /= all_zero) STOP 7
39 allocate (empty(0:3,0))
40 res = maxval(empty)
41 if (res /= all_zero) STOP 8
42 end program main