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