File: case_09.f90

package info (click to toggle)
lfortran 0.60.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,412 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 37; javascript: 15
file content (29 lines) | stat: -rw-r--r-- 747 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
! Test for https://github.com/lfortran/lfortran/issues/8407
! Select case with multiple range conditions in a single case
! Exact MRE from issue body
program casetest
  implicit none
  integer :: i
  do i = 1,5
     select case (i)
     case (2:3,5)
        print "(A,I0)",'case (2:3,5) i=',i
     case default
        print "(A,I0)",'case default i=',i
     end select
  end do
  if (.not. check()) error stop
contains
  logical function check()
    integer :: j
    check = .true.
    do j = 1,5
       select case (j)
       case (2:3,5)
          if (j /= 2 .and. j /= 3 .and. j /= 5) check = .false.
       case default
          if (j /= 1 .and. j /= 4) check = .false.
       end select
    end do
  end function check
end program casetest