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.

Reply via email to