1! { dg-do compile }
2! { dg-options "-Warray-temporaries" }
3module foobar
4  type baz
5     integer :: i
6     integer :: j
7     integer :: k
8     integer :: m
9  end type baz
10contains
11  subroutine foo(a,b,c,i)
12    real, dimension(10) :: a,b
13    type(baz) :: c
14    integer, dimension(10) :: i
15    a(i(1):i(2)) = a(i(1):i(2)) + b(i(1):i(2))
16    a(i(1):i(2)) = a(i(3):i(5)) ! { dg-warning "Creating array temporary" }
17    a(c%i:c%j) = a(c%i:c%j) + b(c%k:c%m)
18    a(c%k:c%m) = a(c%i:c%j) + b(c%k:c%m) ! { dg-warning "Creating array temporary" }
19  end subroutine foo
20end module foobar
21