! { dg-do run } ! PR 47065 - make sure that trim optimization does not lead to ! wrong-code with aliasing. ! Test case provided by Tobias Burnus. program main character(len=12) :: str str = '1234567890' call sub(trim(str), str) ! Should print '12345 ' if (str /= '12345 ') call abort call two(trim(str)) if (str /= '123 ') call abort contains subroutine sub(a,b) character(len=*), intent(in) :: a character(len=*), intent(out) :: b b = '' b = a(1:5) end subroutine sub subroutine two(a) character(len=*), intent(in) :: a str = '' str(1:3) = a(1:3) end subroutine two end program main