llvm/flang/test/Evaluate/folding21.f90

! RUN: %python %S/test_folding.py %s %flang_fc1
! Check array sizes with varying extents, including extents where the upper
! bound is less than the lower bound
module m
 contains
  subroutine s1(a,b)
    real nada1(-2:-1)    ! size =  2
    real nada2(-1:-1)    ! size =  1
    real nada3( 0:-1)    ! size =  0
    real nada4( 1:-1)    ! size =  0
    real nada5( 2:-1)    ! size =  0
    real nada6( 3:-1)    ! size =  0
    real nada7( 5, 3:-1) ! size =  0
    real nada8( -1)      ! size =  0

    integer, parameter :: size1 = size(nada1)
    integer, parameter :: size2 = size(nada2)
    integer, parameter :: size3 = size(nada3)
    integer, parameter :: size4 = size(nada4)
    integer, parameter :: size5 = size(nada5)
    integer, parameter :: size6 = size(nada6)
    integer, parameter :: size7 = size(nada7)
    integer, parameter :: size8 = size(nada8)

    logical, parameter :: test_size_1 = size1 == 2
    logical, parameter :: test_size_2 = size2 == 1
    logical, parameter :: test_size_3 = size3 == 0
    logical, parameter :: test_size_4 = size4 == 0
    logical, parameter :: test_size_5 = size5 == 0
    logical, parameter :: test_size_6 = size6 == 0
    logical, parameter :: test_size_7 = size7 == 0
    logical, parameter :: test_size_8 = size8 == 0
  end subroutine
end module