annotate gcc/testsuite/gfortran.dg/maxval_char_4.f90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 ! { dg-do run }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 program main
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 implicit none
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 integer, parameter :: n=5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 character(kind=4,len=6), dimension(n,n) :: a
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 integer, dimension(n,n) :: v
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 character(kind=4,len=6), dimension(n) :: r1, r2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 character(kind=4,len=6), dimension(:,:), allocatable :: a_alloc
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 integer, dimension(:,:), allocatable :: v_alloc
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 character(kind=4,len=6), parameter :: zero = achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 integer :: i
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 character(kind=4,len=6),dimension(1) :: ret
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 logical, dimension(n,n) :: mask
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 logical :: smask
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 v = reshape([(i*i+200-17*i,i=1,n*n)],shape(v))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 write (unit=a,fmt='(I6.6)') (i*i+200-17*i,i=1,n*n)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 r1 = maxval(a,dim=1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 write (unit=r2,fmt='(I6.6)') maxval(v,dim=1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 if (any (r1 /= r2)) STOP 1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 r1 = 4_'x'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 write (unit=r1,fmt='(I6.6)') maxval(v,dim=1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 if (any (r1 /= r2)) STOP 2
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 r1 = 4_'y'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 r1 = maxval(a,dim=2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 write (unit=r2,fmt='(I6.6)') maxval(v,dim=2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 if (any (r1 /= r2)) STOP 3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 r1 = 4_'z'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 write (unit=r1,fmt='(I6.6)') maxval(v,dim=2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 if (any (r1 /= r2)) STOP 4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 allocate (a_alloc(0,1), v_alloc(0,1))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 ret = 4_'what'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 ret = maxval(a_alloc,dim=1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 if (ret(1) /= zero) STOP 5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 r1 = 4_'qq'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 r1 = maxval(a, dim=1, mask=a>4_"000200");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 if (any(r1 /= zero .neqv. maxval(v,dim=1, mask=v>200) > 0)) STOP 6
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 if (any(maxval(a, dim=1, mask=a>4_"000200") /= zero .neqv. maxval(v,dim=1, mask=v>200) > 0)) STOP 7
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 r1 = 4_'rr'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 r1 = maxval(a, dim=2, mask=a>4_"000200");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 if (any(r1 /= zero .neqv. maxval(v,dim=2, mask=v>200) > 0)) STOP 8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 if (any(maxval(a, dim=2, mask=a>4_"000200") /= zero .neqv. maxval(v,dim=2, mask=v>200) > 0)) STOP 9
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 mask = .true.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 forall (i=1:n)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 mask(i,i) = .false.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 end forall
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 r1 = 4_'aa'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 r1 = maxval(a, dim=1, mask=mask)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 write(unit=r2,fmt='(I6.6)') maxval(v,dim=1, mask=mask)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 if (any(r1 /= r2)) STOP 10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 r1 = 4_'xyz'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 smask = .true.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 r1 = maxval(a, dim=1, mask=smask)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 write (unit=r2,fmt='(I6.6)') maxval(v,dim=1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 if (any (r1 /= r2)) STOP 11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 smask = .false.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 r1 = 4_'foobar'
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 r1 = maxval(a, dim=1, mask=smask)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 if (any(r1 /= zero)) STOP 12
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 end program main