! { dg-do compile } ! { dg-options "-ffrontend-optimize -fdump-tree-original" } ! PR fortran/52537 - optimize comparisons with empty strings program main implicit none character(len=10) :: a character(len=30) :: line character(len=4,kind=4) :: c4 line = 'x' read (unit=line,fmt='(A)') a c4 = 4_'foo' if (c4 == 4_' ') print *,"foobar" if (trim(a) == '') print *,"empty" call foo(a) if (trim(a) == ' ') print *,"empty" contains subroutine foo(b) character(*) :: b if (b /= ' ') print *,"full" end subroutine foo end program main ! { dg-final { scan-tree-dump-times "_gfortran_string_len_trim" 4 "original" } } ! { dg-final { cleanup-tree-dump "original" } }