Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gfortran.dg/minval_char_4.f90 @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 ! { dg-do run } | |
2 program main | |
3 implicit none | |
4 integer, parameter :: n=5 | |
5 character(len=6,kind=4), dimension(n,n) :: a | |
6 integer, dimension(n,n) :: v | |
7 character(len=6,kind=4), dimension(n) :: r1, r2 | |
8 character(len=6,kind=4), dimension(:,:), allocatable :: a_alloc | |
9 integer, dimension(:,:), allocatable :: v_alloc | |
10 character(len=6,kind=4):: all_full | |
11 integer :: i | |
12 character(len=6,kind=4),dimension(1) :: ret | |
13 logical, dimension(n,n) :: mask | |
14 logical :: smask | |
15 integer(kind=4), dimension(6) :: kmin | |
16 | |
17 kmin = -1 | |
18 all_full = transfer(kmin,all_full) | |
19 v = reshape([(i*i+200-17*i,i=1,n*n)],shape(v)) | |
20 write (unit=a,fmt='(I6.6)') (i*i+200-17*i,i=1,n*n) | |
21 | |
22 r1 = minval(a,dim=1) | |
23 write (unit=r2,fmt='(I6.6)') minval(v,dim=1) | |
24 if (any (r1 /= r2)) STOP 1 | |
25 r1 = 4_'x' | |
26 write (unit=r1,fmt='(I6.6)') minval(v,dim=1) | |
27 if (any (r1 /= r2)) STOP 2 | |
28 | |
29 r1 = 4_'y' | |
30 r1 = minval(a,dim=2) | |
31 write (unit=r2,fmt='(I6.6)') minval(v,dim=2) | |
32 if (any (r1 /= r2)) STOP 3 | |
33 r1 = 4_'z' | |
34 write (unit=r1,fmt='(I6.6)') minval(v,dim=2) | |
35 if (any (r1 /= r2)) STOP 4 | |
36 | |
37 allocate (a_alloc(0,1), v_alloc(0,1)) | |
38 ret = 4_'what' | |
39 ret = minval(a_alloc,dim=1) | |
40 if (ret(1) /= all_full) STOP 5 | |
41 | |
42 r1 = 4_'qq' | |
43 r1 = minval(a, dim=1, mask=a>4_"000200"); | |
44 if (any(r1 /= all_full .neqv. minval(v,dim=1, mask=v>200) < 1000)) STOP 6 | |
45 if (any(minval(a, dim=1, mask=a>4_"000200") /= all_full .neqv. minval(v,dim=1, mask=v>200) < 1000)) STOP 7 | |
46 | |
47 r1 = 4_'rr' | |
48 r1 = minval(a, dim=2, mask=a>4_"000200"); | |
49 if (any(r1 /= all_full .neqv. minval(v,dim=2, mask=v>200) < 1000)) STOP 8 | |
50 if (any(minval(a, dim=2, mask=a>4_"000200") /= all_full .neqv. minval(v,dim=2, mask=v>200) < 1000)) STOP 9 | |
51 | |
52 mask = .true. | |
53 forall (i=1:n) | |
54 mask(i,i) = .false. | |
55 end forall | |
56 | |
57 r1 = 4_'aa' | |
58 r1 = minval(a, dim=1, mask=mask) | |
59 write(unit=r2,fmt='(I6.6)') minval(v,dim=1, mask=mask) | |
60 if (any(r1 /= r2)) STOP 10 | |
61 | |
62 r1 = 4_'xyz' | |
63 smask = .true. | |
64 r1 = minval(a, dim=1, mask=smask) | |
65 write (unit=r2,fmt='(I6.6)') minval(v,dim=1) | |
66 if (any (r1 /= r2)) STOP 11 | |
67 | |
68 smask = .false. | |
69 r1 = 4_'foobar' | |
70 r1 = minval(a, dim=1, mask=smask) | |
71 if (any(r1 /= all_full)) STOP 12 | |
72 end program main |