! { dg-do compile }
! { dg-options "-fcoarray=single" }
!
! Coarray support -- corank declarations
! PR fortran/18918
!

subroutine valid(n, c, f)
  implicit none
  integer :: n
  integer, save :: a[*], b(4)[-1:4,*]
  real :: c(*)[1,0:3,3:*]
  real :: f(n)[0:n,-100:*]
  integer, allocatable :: d[:], e(:)[:,:]
  integer, save, codimension[1,*] :: g, h(7), i(6)[*], j[*]
  integer :: k
  codimension :: k[*]
  save :: k
  integer :: ii = 7
  block
    integer :: j = 5
    integer, save :: kk[j, *] ! { dg-error "Variable .j. cannot appear in the expression" }
  end block
end subroutine valid

subroutine valid2()
  type t
    integer, allocatable :: a[:]
  end type t
  type, extends(t) :: tt
    integer, allocatable :: b[:]
  end type tt
  type(tt), save :: foo
  type(tt) :: bar
end subroutine valid2

subroutine invalid(n)
  implicit none
  integer :: n
  integer :: k[*] ! { dg-error "not ALLOCATABLE, SAVE nor a dummy" }
  integer :: h(3)[*] ! { dg-error "not ALLOCATABLE, SAVE nor a dummy" }
  integer, save :: a[*]
  codimension :: a[1,*] ! { dg-error "Duplicate CODIMENSION attribute" }
  complex, save :: hh(n)[*] ! { dg-error "cannot have the SAVE attribute" }
  integer :: j = 6

  integer, save :: hf1[j,*] ! { dg-error "cannot appear in the expression" }
  integer, save :: hf2[n,*] ! OK
  integer, save :: hf3(4)[j,*] ! { dg-error "cannot appear in the expression|cannot have the SAVE attribute" }
  integer, save :: hf4(5)[n,*] ! OK

  integer, allocatable :: a2[*] ! { dg-error "must have deferred shape" }
  integer, allocatable :: a3(:)[*] ! { dg-error "must have deferred shape" }
  integer, allocatable :: a4[*] ! { dg-error "must have deferred shape" }
end subroutine invalid

subroutine invalid2
  use iso_c_binding
  implicit none
  type t0
    integer, allocatable :: a[:,:,:]
  end type t0
  type t
  end type t
  type, extends(t) :: tt ! { dg-error "has a coarray component, parent type" }
    integer, allocatable :: a[:]
  end type tt
  type ttt
    integer, pointer :: a[:] ! { dg-error "must be allocatable" }
  end type ttt
  type t4
    integer, allocatable :: b[4,*] ! { dg-error "with deferred shape" }
  end type t4
  type t5
    type(c_ptr), allocatable :: p[:] ! { dg-error "shall not be a coarray" }
  end type t5
  type(t0), save :: t0_1[*] ! { dg-error "shall be a nonpointer, nonallocatable scalar" }
  type(t0), allocatable :: t0_2[:] ! { dg-error "shall be a nonpointer, nonallocatable scalar" }
  type(c_ptr), save :: pp[*] ! { dg-error "shall not be a coarray" }
end subroutine invalid2

elemental subroutine elem(a) ! { dg-error "Coarray dummy argument" }
  integer, intent(in) :: a[*]
end subroutine

function func() result(res)
  integer :: res[*] ! { dg-error "CODIMENSION attribute conflicts with RESULT" }
end function func
