! RUN: %python %S/test_errors.py %s %flang_fc1
! Tests for the 14 items that specify a "specification expression" in section
! 10.1.11

! a constant or subobject of a constant,
subroutine s1()
  type dType
    integer :: field
  end type dType

  type(dType), parameter :: dConst = dType(3)
  real, dimension(3) :: realVar1
  real, dimension(dConst%field) :: realVar2
end subroutine s1

! an object designator with a base object that is a dummy argument that has 
! neither the OPTIONAL nor the INTENT (OUT) attribute,
subroutine s2(inArg, inoutArg, outArg, optArg)
  integer, intent(in) :: inArg
  integer, intent(inout) :: inoutArg
  integer, intent(out) :: outArg
  integer, intent(in), optional :: optArg
  real, dimension(inArg) :: realVar1
  real, dimension(inoutArg) :: realVar2
  !ERROR: Invalid specification expression: reference to INTENT(OUT) dummy argument 'outarg'
  real, dimension(outArg) :: realVar3
  !ERROR: Invalid specification expression: reference to OPTIONAL dummy argument 'optarg'
  real, dimension(optArg) :: realVar4

  outArg = 3
end subroutine s2

! an object designator with a base object that is in a common block,
subroutine s3()
  integer :: intVar
  common intCommonVar
  real, dimension(intCommonVar) :: realVar
end subroutine s3

! an object designator with a base object that is made accessible by
!    use or host association,
module m4
  integer :: intVar
end module m4

subroutine s4()
  use m4
  real, dimension(intVar) :: realVar
end subroutine s4

! an array constructor where each element and each scalar-int-expr of 
!   each ac-implied-do-control is a restricted expression,
subroutine s5()
  real, dimension(storage_size([1,2])) :: realVar
end subroutine s5

! a structure constructor where each component is a restricted expression,
subroutine s6()
  type :: dType
    integer :: field1
    integer :: field2
  end type dType

  real, dimension(storage_size(dType(1, 2))) :: realArray
end subroutine s6

! a specification inquiry where each designator or argument is
!   (a) a restricted expression or
subroutine s7a()
  real, dimension(3) :: realArray1
  real, dimension(size(realArray1)) :: realArray2
end subroutine s7a

! a specification inquiry where each designator or argument is
!   (b) a variable that is not an optional dummy argument, and whose
!     properties inquired about are not
!     (i)   dependent on the upper bound of the last dimension of an 
!       assumed-size array,
subroutine s7bi(assumedArg)
  integer, dimension(2, *) :: assumedArg
  real, dimension(ubound(assumedArg, 1)) :: realArray1
  !ERROR: DIM=2 dimension is out of range for rank-2 assumed-size array
  real, dimension(ubound(assumedArg, 2)) :: realArray2
end subroutine s7bi

! a specification inquiry where each designator or argument is
!   (b) a variable that is not an optional dummy argument, and whose
!     properties inquired about are not
!     (ii)  deferred, or
subroutine s7bii(dummy)
  character(len=:), pointer :: dummy
  ! Should be an error since "dummy" is deferred, but all compilers handle it
  real, dimension(len(dummy)) :: realArray
end subroutine s7bii

! a specification inquiry where each designator or argument is
!   (b) a variable that is not an optional dummy argument, and whose
!     properties inquired about are not
!  (iii) defined by an expression that is not a restricted expression,
subroutine s7biii()
  integer, parameter :: localConst = 5
  integer :: local = 5
  ! OK, since "localConst" is a constant
  real, dimension(localConst) :: realArray1
  !ERROR: Invalid specification expression: reference to local entity 'local'
  real, dimension(local) :: realArray2
end subroutine s7biii

! a specification inquiry that is a constant expression,
subroutine s8()
  integer :: iVar
  real, dimension(bit_size(iVar)) :: realArray
end subroutine s8

! a reference to the intrinsic function PRESENT,
subroutine s9(optArg)
  integer, optional :: optArg
  real, dimension(merge(3, 4, present(optArg))) :: realArray
end subroutine s9

! a reference to any other standard intrinsic function where each
!   argument is a restricted expression,
subroutine s10()
  integer :: iVar
  real, dimension(bit_size(iVar)) :: realArray
end subroutine s10

! a reference to a transformational function from the intrinsic module 
!   IEEE_ARITHMETIC, IEEE_EXCEPTIONS, or ISO_C_BINDING, where each argument 
!   is a restricted expression,
subroutine s11()
  use ieee_exceptions
  real, dimension(merge(3, 4, ieee_support_halting(ieee_invalid))) :: realArray
end subroutine s11

! a reference to a specification function where each argument is a 
!   restricted expression,
module m12
  contains
    pure function specFunc(arg)
      integer, intent(in) :: arg
      integer :: specFunc
      specFunc = 3 + arg
    end function specFunc
end module m12

subroutine s12()
  use m12
  real, dimension(specFunc(2)) :: realArray
end subroutine s12

! a type parameter of the derived type being defined,
subroutine s13()
  type :: dtype(param)
    integer, len :: param
    real, dimension(param) :: realField
  end type dtype
end subroutine s13

! an ac-do-variable within an array constructor where each 
!   scalar-int-expr of the corresponding ac-implied-do-control is a restricted 
!   expression, or
subroutine s14()
  real, dimension(5) :: realField = [(i, i = 1, 5)]
end subroutine s14

! a restricted expression enclosed in parentheses,where each subscript, 
!   section subscript, substring starting point, substring ending point, and 
!   type parameter value is a restricted expression
subroutine s15()
  type :: dtype(param)
    integer, len :: param
    real, dimension((param + 2)) :: realField
  end type dtype
end subroutine s15

! Regression test: don't get confused by host association
subroutine s16(n)
  integer :: n
 contains
  subroutine inner(r)
    real, dimension(n) :: r
  end subroutine
end subroutine s16
