1! { dg-do compile }
2! PR 22143:  We didn' have shift arguments to eoshift of kind=1
3!            and kind=2.
4program main
5  implicit none
6  integer, dimension (3,3) :: a, b, w
7  integer(kind=2), dimension (3) :: sh2
8  integer(kind=1), dimension (3) :: sh1
9  integer, dimension(3) :: bo
10  integer :: i,j
11
12  a = reshape((/(i,i=1,9)/),shape(a))
13  sh1 = (/ -3, -1, 3 /)
14  sh2 = (/ -3, -1, 3 /)
15  bo = (/-999, -99, -9 /)
16  b = cshift(a, shift=sh1)
17  call foo(b)
18  b = cshift(a, shift=sh2)
19  call foo(b)
20
21  b = eoshift(a, shift=sh1)
22  call foo(b)
23  b = eoshift(a, shift=sh1, boundary=bo)
24  call foo(b)
25  b = eoshift(a, shift=sh2)
26  call foo(b)
27  b = eoshift(a, shift=sh2, boundary=bo)
28  call foo(b)
29
30end program main
31
32subroutine foo(b)
33  ! Do nothing but confuse the optimizer into not removing the
34  ! function calls.
35  integer, dimension(3,3) :: b
36end subroutine foo
37
38