re PR fortran/78741 (ICE in gfc_get_symbol_decl, at fortran/trans-decl.c:1534)
[official-gcc.git] / gcc / testsuite / gfortran.dg / maxlocval_4.f90
blob67fd8e7ff1e7dc6c66231802d53859d10762bec9
1 ! { dg-do run }
2 ! { dg-add-options ieee }
3 ! { dg-skip-if "NaN not supported" { spu-*-* } }
4 real :: a(3,3), b(3), nan, minf, pinf, h
5 logical :: l, l2
6 logical :: l3(3,3), l4(3,3), l5(3,3)
8 nan = 0.0
9 minf = 0.0
10 pinf = 0.0
11 nan = 0.0/nan
12 minf = -1.0/minf
13 pinf = 1.0/pinf
14 h = -huge(h)
15 l = .false.
16 l2 = .true.
17 l3 = .false.
18 l4 = .true.
19 l5 = .true.
20 l5(1,1) = .false.
21 l5(1,2) = .false.
22 l5(2,3) = .false.
23 a = reshape ((/ nan, nan, nan, minf, minf, minf, minf, pinf, minf /), (/ 3, 3 /))
24 if (maxval (a).ne.pinf) STOP 1
25 if (any (maxloc (a).ne.(/ 2, 3 /))) STOP 2
26 b = maxval (a, dim = 1)
27 if (.not.isnan(b(1))) STOP 3
28 b(1) = 0.0
29 if (any (b.ne.(/ 0.0, minf, pinf /))) STOP 4
30 if (any (maxloc (a, dim = 1).ne.(/ 1, 1, 2 /))) STOP 5
31 b = maxval (a, dim = 2)
32 if (any (b.ne.(/ minf, pinf, minf /))) STOP 6
33 if (any (maxloc (a, dim = 2).ne.(/ 2, 3, 2 /))) STOP 7
34 if (maxval (a, mask = l).ne.h) STOP 8
35 if (any (maxloc (a, mask = l).ne.(/ 0, 0 /))) STOP 9
36 b = maxval (a, dim = 1, mask = l)
37 if (any (b.ne.(/ h, h, h /))) STOP 10
38 if (any (maxloc (a, dim = 1, mask = l).ne.(/ 0, 0, 0 /))) STOP 11
39 b = maxval (a, dim = 2, mask = l)
40 if (any (b.ne.(/ h, h, h /))) STOP 12
41 if (any (maxloc (a, dim = 2, mask = l).ne.(/ 0, 0, 0 /))) STOP 13
42 if (maxval (a, mask = l3).ne.h) STOP 14
43 if (any (maxloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 15
44 b = maxval (a, dim = 1, mask = l3)
45 if (any (b.ne.(/ h, h, h /))) STOP 16
46 if (any (maxloc (a, dim = 1, mask = l3).ne.(/ 0, 0, 0 /))) STOP 17
47 b = maxval (a, dim = 2, mask = l3)
48 if (any (b.ne.(/ h, h, h /))) STOP 18
49 if (any (maxloc (a, dim = 2, mask = l3).ne.(/ 0, 0, 0 /))) STOP 19
50 if (maxval (a, mask = l2).ne.pinf) STOP 20
51 if (maxval (a, mask = l4).ne.pinf) STOP 21
52 if (any (maxloc (a, mask = l2).ne.(/ 2, 3 /))) STOP 22
53 if (any (maxloc (a, mask = l4).ne.(/ 2, 3 /))) STOP 23
54 b = maxval (a, dim = 1, mask = l2)
55 if (.not.isnan(b(1))) STOP 24
56 b(1) = 0.0
57 if (any (b.ne.(/ 0.0, minf, pinf /))) STOP 25
58 if (any (maxloc (a, dim = 1, mask = l2).ne.(/ 1, 1, 2 /))) STOP 26
59 b = maxval (a, dim = 2, mask = l2)
60 if (any (b.ne.(/ minf, pinf, minf /))) STOP 27
61 if (any (maxloc (a, dim = 2, mask = l2).ne.(/ 2, 3, 2 /))) STOP 28
62 b = maxval (a, dim = 1, mask = l4)
63 if (.not.isnan(b(1))) STOP 29
64 b(1) = 0.0
65 if (any (b.ne.(/ 0.0, minf, pinf /))) STOP 30
66 if (any (maxloc (a, dim = 1, mask = l2).ne.(/ 1, 1, 2 /))) STOP 31
67 b = maxval (a, dim = 2, mask = l4)
68 if (any (b.ne.(/ minf, pinf, minf /))) STOP 32
69 if (any (maxloc (a, dim = 2, mask = l2).ne.(/ 2, 3, 2 /))) STOP 33
70 if (maxval (a, mask = l5).ne.minf) STOP 34
71 if (any (maxloc (a, mask = l5).ne.(/ 2, 2 /))) STOP 35
72 b = maxval (a, dim = 1, mask = l5)
73 if (.not.isnan(b(1))) STOP 36
74 b(1) = 0.0
75 if (any (b.ne.(/ 0.0, minf, minf /))) STOP 37
76 if (any (maxloc (a, dim = 1, mask = l5).ne.(/ 2, 2, 1 /))) STOP 38
77 b = maxval (a, dim = 2, mask = l5)
78 if (any (b.ne.(/ minf, minf, minf /))) STOP 39
79 if (any (maxloc (a, dim = 2, mask = l5).ne.(/ 3, 2, 2 /))) STOP 40
80 a = nan
81 if (.not.isnan(maxval (a))) STOP 41
82 if (maxval (a, mask = l).ne.h) STOP 42
83 if (.not.isnan(maxval (a, mask = l2))) STOP 43
84 if (maxval (a, mask = l3).ne.h) STOP 44
85 if (.not.isnan(maxval (a, mask = l4))) STOP 45
86 if (.not.isnan(maxval (a, mask = l5))) STOP 46
87 if (any (maxloc (a).ne.(/ 1, 1 /))) STOP 47
88 if (any (maxloc (a, mask = l).ne.(/ 0, 0 /))) STOP 48
89 if (any (maxloc (a, mask = l2).ne.(/ 1, 1 /))) STOP 49
90 if (any (maxloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 50
91 if (any (maxloc (a, mask = l4).ne.(/ 1, 1 /))) STOP 51
92 if (any (maxloc (a, mask = l5).ne.(/ 2, 1 /))) STOP 52
93 a = minf
94 if (maxval (a).ne.minf) STOP 53
95 if (maxval (a, mask = l).ne.h) STOP 54
96 if (maxval (a, mask = l2).ne.minf) STOP 55
97 if (maxval (a, mask = l3).ne.h) STOP 56
98 if (maxval (a, mask = l4).ne.minf) STOP 57
99 if (maxval (a, mask = l5).ne.minf) STOP 58
100 if (any (maxloc (a).ne.(/ 1, 1 /))) STOP 59
101 if (any (maxloc (a, mask = l).ne.(/ 0, 0 /))) STOP 60
102 if (any (maxloc (a, mask = l2).ne.(/ 1, 1 /))) STOP 61
103 if (any (maxloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 62
104 if (any (maxloc (a, mask = l4).ne.(/ 1, 1 /))) STOP 63
105 if (any (maxloc (a, mask = l5).ne.(/ 2, 1 /))) STOP 64
106 a = nan
107 a(1,3) = minf
108 if (maxval (a).ne.minf) STOP 65
109 if (maxval (a, mask = l).ne.h) STOP 66
110 if (maxval (a, mask = l2).ne.minf) STOP 67
111 if (maxval (a, mask = l3).ne.h) STOP 68
112 if (maxval (a, mask = l4).ne.minf) STOP 69
113 if (maxval (a, mask = l5).ne.minf) STOP 70
114 if (any (maxloc (a).ne.(/ 1, 3 /))) STOP 71
115 if (any (maxloc (a, mask = l).ne.(/ 0, 0 /))) STOP 72
116 if (any (maxloc (a, mask = l2).ne.(/ 1, 3 /))) STOP 73
117 if (any (maxloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 74
118 if (any (maxloc (a, mask = l4).ne.(/ 1, 3 /))) STOP 75
119 if (any (maxloc (a, mask = l5).ne.(/ 1, 3 /))) STOP 76