! { dg-do compile } 
! { dg-additional-options "-fmax-errors=100" } 
program test 
  implicit none
  integer :: i, j, k, l, a(10)
  common /b/ k
  real, pointer :: p1 => NULL()
  complex :: c, d(10)
  !$acc parallel private(i)
  !$acc end parallel
  !$acc parallel private(a)
  !$acc end parallel
  !$acc parallel private(c, d)
  !$acc end parallel
  !$acc parallel private(i, j, k, l, a)
  !$acc end parallel  
  !$acc parallel private (i) private (j)
  !$acc end parallel
  !$acc parallel private ! { dg-error "Failed to match clause" }
  !$acc parallel private() ! { dg-error "Syntax error" }
  !$acc parallel private(a(1:3)) ! { dg-error "Syntax error" }
  !$acc parallel private(10) ! { dg-error "Syntax error" }
  !$acc parallel private(/b/, /b/) ! { dg-error "present on multiple clauses" }
  !$acc end parallel
  !$acc parallel private(i, j, i) ! { dg-error "present on multiple clauses" }
  !$acc end parallel
  !$acc parallel private(p1) 
  !$acc end parallel
  !$acc parallel firstprivate(i)
  !$acc end parallel
  !$acc parallel firstprivate(c, d)
  !$acc end parallel
  !$acc parallel firstprivate(a)
  !$acc end parallel
  !$acc parallel firstprivate(i, j, k, l, a)
  !$acc end parallel  
  !$acc parallel firstprivate (i) firstprivate (j)
  !$acc end parallel
  !$acc parallel firstprivate ! { dg-error "Failed to match clause" }
  !$acc parallel firstprivate() ! { dg-error "Syntax error" }
  !$acc parallel firstprivate(a(1:3)) ! { dg-error "Syntax error" }
  !$acc parallel firstprivate(10) ! { dg-error "Syntax error" }
  !$acc parallel firstprivate (/b/, /b/) ! { dg-error "present on multiple clauses" }
  !$acc end parallel
  !$acc parallel firstprivate (i, j, i) ! { dg-error "present on multiple clauses" }
  !$acc end parallel
  !$acc parallel firstprivate(p1) 
  !$acc end parallel
  !$acc parallel private (i) firstprivate (i) ! { dg-error "present on multiple clauses" }
  !$acc end parallel
  !$acc host_data use_device(i) ! { dg-error "neither a POINTER nor an array" }
  !$acc end host_data
  !$acc host_data use_device(c, d) ! { dg-error "neither a POINTER nor an array" }
  !$acc end host_data
  !$acc host_data use_device(a)
  !$acc end host_data
  !$acc host_data use_device(i, j, k, l, a) ! { dg-error "neither a POINTER nor an array" }
  !$acc end host_data  
  !$acc host_data use_device (i) use_device (j) ! { dg-error "neither a POINTER nor an array" }
  !$acc end host_data
  !$acc host_data use_device ! { dg-error "Failed to match clause" }
  !$acc host_data use_device() ! { dg-error "Syntax error" }
  !$acc host_data use_device(a(1:3)) ! { dg-error "Syntax error" }
  !$acc host_data use_device(10) ! { dg-error "Syntax error" }
  !$acc host_data use_device(/b/, /b/)
  !$acc end host_data
  ! { dg-error "neither a POINTER nor an array" "" { target *-*-* } 102 }
  ! { dg-error "present on multiple clauses" "" { target *-*-* } 102 }
  !$acc host_data use_device(i, j, i)
  !$acc end host_data
  ! { dg-error "neither a POINTER nor an array" "" { target *-*-* } 107 }
  ! { dg-error "present on multiple clauses" "" { target *-*-* } 107 }
  !$acc host_data use_device(p1)
  !$acc end host_data
end program test