1! { dg-do run } 2! { dg-options "-O -fdump-tree-original" } 3! Check that trailing trims are also removed from assignment of 4! expressions involving concatenations of strings . 5program main 6 character(2) :: a,b,c 7 character(8) :: d 8 a = 'a ' 9 b = 'b ' 10 c = 'c ' 11 d = a // b // a // trim(c) ! This should be optimized away. 12 if (d /= 'a b a c ') call abort 13 d = a // trim(b) // c // a ! This shouldn't. 14 if (d /= 'a bc a ') call abort 15 d = a // b // a // trim(trim(c)) ! This should also be optimized away. 16 if (d /= 'a b a c ') call abort 17end 18! { dg-final { scan-tree-dump-times "string_len_trim" 1 "original" } } 19! { dg-final { cleanup-tree-dump "original" } } 20