1! { dg-do run }
2
3program test
4  integer x(20)
5  integer, volatile :: n
6  n = 1
7  if (size(x(n:2:-3)) /= 0) STOP 1
8
9  call ha0020(-3)
10  call ha0020(-1)
11end program test
12
13subroutine ha0020(mf3)
14  implicit none
15  integer xca(2), xda(2), mf3
16
17  xca = 1
18  xda = -1
19
20  xca(1:2:-1) = xda(1:2:mf3)
21
22  if (any (xca /= 1)) STOP 2
23  if (any(xda(1:2:mf3) /= xda(1:0))) STOP 3
24  if (size(xda(1:2:mf3)) /= 0) STOP 4
25  if (any(shape(xda(1:2:mf3)) /= 0)) STOP 5
26  if (any(ubound(xda(1:2:mf3)) /= 0)) STOP 6
27  if (ubound(xda(1:2:mf3),1) /= 0) STOP 7
28  if (lbound(xda(1:2:mf3),1) /= 1) STOP 8
29
30end subroutine
31