1! { dg-do run }
2! PR 47065 - make sure that trim optimization does not lead to
3! wrong-code with aliasing.
4! Test case provided by Tobias Burnus.
5program main
6  character(len=12) :: str
7  str = '1234567890'
8  call sub(trim(str), str)
9  ! Should print '12345       '
10  if (str /= '12345       ') call abort
11  call two(trim(str))
12  if (str /= '123         ') call abort
13contains
14  subroutine sub(a,b)
15    character(len=*), intent(in) :: a
16    character(len=*), intent(out) :: b
17    b = ''
18    b = a(1:5)
19  end subroutine sub
20  subroutine two(a)
21    character(len=*), intent(in) :: a
22    str = ''
23    str(1:3) = a(1:3)
24  end subroutine two
25end program main
26