! { dg-do run } ! { dg-options "-O -fdump-tree-original" } ! Test that expressions in subroutine calls are also optimized program main implicit none character(len=4) :: c c = 'abcd' call yes(c == c) call no(c /= c) end program main subroutine yes(a) implicit none logical, intent(in) :: a if (.not. a) call abort end subroutine yes subroutine no(a) implicit none logical, intent(in) :: a if (a) call abort end subroutine no ! { dg-final { scan-tree-dump-times "gfortran_compare_string" 0 "original" } } ! { dg-final { cleanup-tree-dump "original" } }