blob: 5fd75bad6c4ecd9e0055c60839ef24c8f38d63ce [file] [log] [blame]
! REQUIRES: openmp_runtime
! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags
! OpenMP Version 5.0
! 2.11.3 allocate Directive
! Only the allocator clause is allowed on the allocate directive
! List item in ALLOCATE directive must not be a dummy argument
! List item in ALLOCATE directive must not have POINTER attribute
! List item in ALLOCATE directive must not be a associate name
subroutine allocate(z)
use omp_lib
use iso_c_binding
type(c_ptr), pointer :: p
integer :: x, y, z
!ERROR: PRIVATE clause is not allowed on the ALLOCATE directive
!$omp allocate(y) private(y)
!ERROR: A list item in a declarative ALLOCATE cannot have the ALLOCATABLE or POINTER attribute
!$omp allocate(p)
associate (a => x)
block
!ERROR: A list item on a declarative ALLOCATE must be declared in the same scope in which the directive appears
!$omp allocate(x) allocator(omp_default_mem_alloc)
!ERROR: A list item on a declarative ALLOCATE must be declared in the same scope in which the directive appears
!ERROR: A list item in a declarative ALLOCATE cannot be an associate name
!$omp allocate(a)
end block
end associate
end subroutine allocate