blob: 3713b97d4e812264c26b93b4539afbc1fd4ba116 [file] [log] [blame]
! { dg-do run }
integer :: a(3), h, ia(1)
integer, allocatable :: c(:)
logical :: l
logical :: l2(3)
h = -huge(h)
h = h - 1
allocate (c(3))
a(:) = 5
ia = maxloc (a)
if (ia(1).ne.1) STOP 1
a(2) = huge(h)
ia = maxloc (a)
if (ia(1).ne.2) STOP 2
a(:) = h
ia = maxloc (a)
if (ia(1).ne.1) STOP 3
a(3) = -huge(h)
ia = maxloc (a)
if (ia(1).ne.3) STOP 4
c(:) = 5
ia = maxloc (c)
if (ia(1).ne.1) STOP 5
c(2) = huge(h)
ia = maxloc (c)
if (ia(1).ne.2) STOP 6
c(:) = h
ia = maxloc (c)
if (ia(1).ne.1) STOP 7
c(3) = -huge(h)
ia = maxloc (c)
if (ia(1).ne.3) STOP 8
l = .false.
l2(:) = .false.
a(:) = 5
ia = maxloc (a, mask = l)
if (ia(1).ne.0) STOP 9
ia = maxloc (a, mask = l2)
if (ia(1).ne.0) STOP 10
a(2) = huge(h)
ia = maxloc (a, mask = l)
if (ia(1).ne.0) STOP 11
ia = maxloc (a, mask = l2)
if (ia(1).ne.0) STOP 12
a(:) = h
ia = maxloc (a, mask = l)
if (ia(1).ne.0) STOP 13
ia = maxloc (a, mask = l2)
if (ia(1).ne.0) STOP 14
a(3) = -huge(h)
ia = maxloc (a, mask = l)
if (ia(1).ne.0) STOP 15
ia = maxloc (a, mask = l2)
if (ia(1).ne.0) STOP 16
c(:) = 5
ia = maxloc (c, mask = l)
if (ia(1).ne.0) STOP 17
ia = maxloc (c, mask = l2)
if (ia(1).ne.0) STOP 18
c(2) = huge(h)
ia = maxloc (c, mask = l)
if (ia(1).ne.0) STOP 19
ia = maxloc (c, mask = l2)
if (ia(1).ne.0) STOP 20
c(:) = h
ia = maxloc (c, mask = l)
if (ia(1).ne.0) STOP 21
ia = maxloc (c, mask = l2)
if (ia(1).ne.0) STOP 22
c(3) = -huge(h)
ia = maxloc (c, mask = l)
if (ia(1).ne.0) STOP 23
ia = maxloc (c, mask = l2)
if (ia(1).ne.0) STOP 24
l = .true.
l2(:) = .true.
a(:) = 5
ia = maxloc (a, mask = l)
if (ia(1).ne.1) STOP 25
ia = maxloc (a, mask = l2)
if (ia(1).ne.1) STOP 26
a(2) = huge(h)
ia = maxloc (a, mask = l)
if (ia(1).ne.2) STOP 27
ia = maxloc (a, mask = l2)
if (ia(1).ne.2) STOP 28
a(:) = h
ia = maxloc (a, mask = l)
if (ia(1).ne.1) STOP 29
ia = maxloc (a, mask = l2)
if (ia(1).ne.1) STOP 30
a(3) = -huge(h)
ia = maxloc (a, mask = l)
if (ia(1).ne.3) STOP 31
ia = maxloc (a, mask = l2)
if (ia(1).ne.3) STOP 32
c(:) = 5
ia = maxloc (c, mask = l)
if (ia(1).ne.1) STOP 33
ia = maxloc (c, mask = l2)
if (ia(1).ne.1) STOP 34
c(2) = huge(h)
ia = maxloc (c, mask = l)
if (ia(1).ne.2) STOP 35
ia = maxloc (c, mask = l2)
if (ia(1).ne.2) STOP 36
c(:) = h
ia = maxloc (c, mask = l)
if (ia(1).ne.1) STOP 37
ia = maxloc (c, mask = l2)
if (ia(1).ne.1) STOP 38
c(3) = -huge(h)
ia = maxloc (c, mask = l)
if (ia(1).ne.3) STOP 39
ia = maxloc (c, mask = l2)
if (ia(1).ne.3) STOP 40
deallocate (c)
allocate (c(-2:-3))
ia = maxloc (c)
if (ia(1).ne.0) STOP 41
end