1! { dg-do compile }
2! PR 70040 - used to cause an ICE.
3! Test case by Martin Reinecke
4program bugrep
5  implicit none
6  type :: string
7    character (len=:), allocatable :: s
8  end type
9
10  integer l
11  type(string), allocatable, dimension(:) :: foo
12  character(len=:),allocatable ::tmp
13  allocate(foo(20))
14  do l= 1, 20
15    tmp = foo(5)%s
16    foo(5)%s = foo(l)%s
17    foo(l)%s = tmp
18  enddo
19end program
20