OSDN Git Service

2011-10-11 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / minlocval_2.f90
1 ! { dg-do run }
2   integer :: a(3), h
3   integer, allocatable :: c(:)
4   logical :: l
5   logical :: l2(3)
6
7   h = -huge(h)
8   h = h - 1
9   allocate (c(3))
10   a(:) = 5
11   if (minloc (a, dim = 1).ne.1) call abort
12   if (minval (a, dim = 1).ne.5) call abort
13   a(2) = h
14   if (minloc (a, dim = 1).ne.2) call abort
15   if (minval (a, dim = 1).ne.h) call abort
16   a(:) = huge(h)
17   if (minloc (a, dim = 1).ne.1) call abort
18   if (minval (a, dim = 1).ne.huge(h)) call abort
19   a(3) = huge(h) - 1
20   if (minloc (a, dim = 1).ne.3) call abort
21   if (minval (a, dim = 1).ne.huge(h)-1) call abort
22   c(:) = 5
23   if (minloc (c, dim = 1).ne.1) call abort
24   if (minval (c, dim = 1).ne.5) call abort
25   c(2) = h
26   if (minloc (c, dim = 1).ne.2) call abort
27   if (minval (c, dim = 1).ne.h) call abort
28   c(:) = huge(h)
29   if (minloc (c, dim = 1).ne.1) call abort
30   if (minval (c, dim = 1).ne.huge(h)) call abort
31   c(3) = huge(h) - 1
32   if (minloc (c, dim = 1).ne.3) call abort
33   if (minval (c, dim = 1).ne.huge(h)-1) call abort
34   l = .false.
35   l2(:) = .false.
36   a(:) = 5
37   if (minloc (a, dim = 1, mask = l).ne.0) call abort
38   if (minval (a, dim = 1, mask = l).ne.huge(h)) call abort
39   if (minloc (a, dim = 1, mask = l2).ne.0) call abort
40   if (minval (a, dim = 1, mask = l2).ne.huge(h)) call abort
41   a(2) = h
42   if (minloc (a, dim = 1, mask = l).ne.0) call abort
43   if (minval (a, dim = 1, mask = l).ne.huge(h)) call abort
44   if (minloc (a, dim = 1, mask = l2).ne.0) call abort
45   if (minval (a, dim = 1, mask = l2).ne.huge(h)) call abort
46   a(:) = huge(h)
47   if (minloc (a, dim = 1, mask = l).ne.0) call abort
48   if (minval (a, dim = 1, mask = l).ne.huge(h)) call abort
49   if (minloc (a, dim = 1, mask = l2).ne.0) call abort
50   if (minval (a, dim = 1, mask = l2).ne.huge(h)) call abort
51   a(3) = huge(h) - 1
52   if (minloc (a, dim = 1, mask = l).ne.0) call abort
53   if (minval (a, dim = 1, mask = l).ne.huge(h)) call abort
54   if (minloc (a, dim = 1, mask = l2).ne.0) call abort
55   if (minval (a, dim = 1, mask = l2).ne.huge(h)) call abort
56   c(:) = 5
57   if (minloc (c, dim = 1, mask = l).ne.0) call abort
58   if (minval (c, dim = 1, mask = l).ne.huge(h)) call abort
59   if (minloc (c, dim = 1, mask = l2).ne.0) call abort
60   if (minval (c, dim = 1, mask = l2).ne.huge(h)) call abort
61   c(2) = h
62   if (minloc (c, dim = 1, mask = l).ne.0) call abort
63   if (minval (c, dim = 1, mask = l).ne.huge(h)) call abort
64   if (minloc (c, dim = 1, mask = l2).ne.0) call abort
65   if (minval (c, dim = 1, mask = l2).ne.huge(h)) call abort
66   c(:) = huge(h)
67   if (minloc (c, dim = 1, mask = l).ne.0) call abort
68   if (minval (c, dim = 1, mask = l).ne.huge(h)) call abort
69   if (minloc (c, dim = 1, mask = l2).ne.0) call abort
70   if (minval (c, dim = 1, mask = l2).ne.huge(h)) call abort
71   c(3) = huge(h) - 1
72   if (minloc (c, dim = 1, mask = l).ne.0) call abort
73   if (minval (c, dim = 1, mask = l).ne.huge(h)) call abort
74   if (minloc (c, dim = 1, mask = l2).ne.0) call abort
75   if (minval (c, dim = 1, mask = l2).ne.huge(h)) call abort
76   l = .true.
77   l2(:) = .true.
78   a(:) = 5
79   if (minloc (a, dim = 1, mask = l).ne.1) call abort
80   if (minval (a, dim = 1, mask = l).ne.5) call abort
81   if (minloc (a, dim = 1, mask = l2).ne.1) call abort
82   if (minval (a, dim = 1, mask = l2).ne.5) call abort
83   a(2) = h
84   if (minloc (a, dim = 1, mask = l).ne.2) call abort
85   if (minval (a, dim = 1, mask = l).ne.h) call abort
86   if (minloc (a, dim = 1, mask = l2).ne.2) call abort
87   if (minval (a, dim = 1, mask = l2).ne.h) call abort
88   a(:) = huge(h)
89   if (minloc (a, dim = 1, mask = l).ne.1) call abort
90   if (minval (a, dim = 1, mask = l).ne.huge(h)) call abort
91   if (minloc (a, dim = 1, mask = l2).ne.1) call abort
92   if (minval (a, dim = 1, mask = l2).ne.huge(h)) call abort
93   a(3) = huge(h) - 1
94   if (minloc (a, dim = 1, mask = l).ne.3) call abort
95   if (minval (a, dim = 1, mask = l).ne.huge(h)-1) call abort
96   if (minloc (a, dim = 1, mask = l2).ne.3) call abort
97   if (minval (a, dim = 1, mask = l2).ne.huge(h)-1) call abort
98   c(:) = 5
99   if (minloc (c, dim = 1, mask = l).ne.1) call abort
100   if (minval (c, dim = 1, mask = l).ne.5) call abort
101   if (minloc (c, dim = 1, mask = l2).ne.1) call abort
102   if (minval (c, dim = 1, mask = l2).ne.5) call abort
103   c(2) = h
104   if (minloc (c, dim = 1, mask = l).ne.2) call abort
105   if (minval (c, dim = 1, mask = l).ne.h) call abort
106   if (minloc (c, dim = 1, mask = l2).ne.2) call abort
107   if (minval (c, dim = 1, mask = l2).ne.h) call abort
108   c(:) = huge(h)
109   if (minloc (c, dim = 1, mask = l).ne.1) call abort
110   if (minval (c, dim = 1, mask = l).ne.huge(h)) call abort
111   if (minloc (c, dim = 1, mask = l2).ne.1) call abort
112   if (minval (c, dim = 1, mask = l2).ne.huge(h)) call abort
113   c(3) = huge(h) - 1
114   if (minloc (c, dim = 1, mask = l).ne.3) call abort
115   if (minval (c, dim = 1, mask = l).ne.huge(h)-1) call abort
116   if (minloc (c, dim = 1, mask = l2).ne.3) call abort
117   if (minval (c, dim = 1, mask = l2).ne.huge(h)-1) call abort
118   deallocate (c)
119   allocate (c(-2:-3))
120   if (minloc (c, dim = 1).ne.0) call abort
121   if (minval (c, dim = 1).ne.huge(h)) call abort
122 end