! { dg-do compile } subroutine foo(x) implicit none integer :: x integer :: i !$omp parallel do simd private (x) allocate (x) ! { dg-error "'x' specified in 'allocate' clause at .1. but not in an explicit privatization clause" } do i = 1, 64 x = i end do !$omp end parallel do simd end subroutine subroutine bar(a) implicit none integer :: a !$omp target !$omp parallel private (a) allocate(a) ! { dg-error "'allocate' clause must specify an allocator here" } a = 20 !$omp end parallel !$omp end target !$omp target private(a) allocate(a) ! { dg-error "'allocate' clause must specify an allocator here" } a = 30; !$omp end target end subroutine