https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107272
Bug ID: 107272 Summary: ICE in gfc_compare_string and others (related to pr107217) Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gcc dot gnu.org Target Milestone: --- The following variation of testcase gfortran.dg/pr107217.f90 ICEs due to yet unhandled non-numeric types: program p print *, 2 <= [real :: (['1'])] ! { dg-error "Cannot convert" } print *, [real :: (['1'])] >= 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] > 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] == 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] /= 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] <= 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] < 2 ! { dg-error "Cannot convert" } print *, 2 <= [real :: (['1'])] ! { dg-error "Cannot convert" } print *, [real :: (['1'])] >= 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] > 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] == 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] /= 2 ! { dg-error "Cannot convert" } print *, [real :: (['1'])] <= 2 ! { dg-error "Cannot convert" } print *, [logical :: (['1'])] .and. .true. ! { dg-error "Cannot convert" } print *, [logical :: (['1'])] .or. .true. ! { dg-error "Cannot convert" } print *, [logical :: (['1'])] .eqv. .true. ! { dg-error "Cannot convert" } print *, [logical :: (['1'])] .neqv. .true. ! { dg-error "Cannot convert" } end The fix is a straightforward extension of the fix for pr107217.