! { dg-do compile }
! { dg-options "-fopenmp" }

subroutine foo (vara, varb, varc, vard, n)
  integer :: n, vara(n), varb(*), varc(:), vard(6), vare(6)
  vare(:) = 0
  !$omp parallel default(none) shared(vara, varb, varc, vard, vare)
    !$omp master
      vara(1) = 1
      varb(1) = 1
      varc(1) = 1
      vard(1) = 1
      vare(1) = 1
    !$omp end master
  !$omp end parallel
  !$omp parallel default(none) private(vara, varc, vard, vare)
    vara(1) = 1
    varc(1) = 1
    vard(1) = 1
    vare(1) = 1
  !$omp end parallel
  !$omp parallel default(none) firstprivate(vara, varc, vard, vare)
    vara(1) = 1
    varc(1) = 1
    vard(1) = 1
    vare(1) = 1
  !$omp end parallel
  !$omp parallel default(none)	! { dg-error "enclosing parallel" }
    !$omp master
      vara(1) = 1		! { dg-error "not specified" }
      varb(1) = 1		! Assumed-size is predetermined
      varc(1) = 1		! { dg-error "not specified" }
      vard(1) = 1		! { dg-error "not specified" }
      vare(1) = 1		! { dg-error "not specified" }
    !$omp end master
  !$omp end parallel
end subroutine foo
