! { dg-do compile }
! { dg-options "-Warray-temporaries" }
module foobar
  type baz
     integer :: i
     integer :: j
     integer :: k
     integer :: m
  end type baz
contains
  subroutine foo(a,b,c,i)
    real, dimension(10) :: a,b
    type(baz) :: c
    integer, dimension(10) :: i
    a(i(1):i(2)) = a(i(1):i(2)) + b(i(1):i(2))
    a(i(1):i(2)) = a(i(3):i(5)) ! { dg-warning "Creating array temporary" }
    a(c%i:c%j) = a(c%i:c%j) + b(c%k:c%m)
    a(c%k:c%m) = a(c%i:c%j) + b(c%k:c%m) ! { dg-warning "Creating array temporary" }
  end subroutine foo
end module foobar
