1! { dg-do compile }
2! { dg-options "-Warray-temporaries" }
3module foo
4  implicit none
5contains
6  integer pure  function bar(i,j)
7    integer, intent(in) :: i,j
8    bar = 3 - i + 1 * abs(i) + j
9  end function bar
10end module foo
11
12program main
13  use foo
14  implicit none
15  real a(10)
16  integer :: i
17  read (*,*) a, i
18  a(i:abs(i)) = a(i:abs(i))
19  a(bar(i,i+2):2) = a(bar(i,i+2):2)
20  a(int(i,kind=2):5) = a(int(i,kind=2)+1:6)
21end program main
22