Files
clang-p2996/flang/test/Semantics/OpenMP/default-none.f90

76 lines
1.6 KiB
Fortran

!RUN: %python %S/../test_errors.py %s %flang -fopenmp
! Positive tests for default(none)
subroutine sb2(x)
real :: x
end subroutine
subroutine sb1
integer :: i
real :: a(10), b(10), k
inc(x) = x + 1.0
abstract interface
function iface(a, b)
real, intent(in) :: a, b
real :: iface
end function
end interface
procedure(iface) :: compute
procedure(iface), pointer :: ptr => NULL()
ptr => fn2
!$omp parallel default(none) shared(a,b,k) private(i)
do i = 1, 10
b(i) = k + sin(a(i)) + inc(a(i)) + fn1(a(i)) + compute(a(i),k) + add(k, k)
call sb3(b(i))
call sb2(a(i))
end do
!$omp end parallel
contains
function fn1(x)
real :: x, fn1
fn1 = x
end function
function fn2(x, y)
real, intent(in) :: x, y
real :: fn2
fn2 = x + y
end function
subroutine sb3(x)
real :: x
print *, x
end subroutine
end subroutine
!construct-name inside default(none)
subroutine sb4
!$omp parallel default(none)
loop: do i = 1, 10
end do loop
!$omp end parallel
end subroutine
! Test that default(none) does not error for assumed-size array
subroutine sub( aaa)
real,dimension(*),intent(in)::aaa
integer::ip
real::ccc
!$omp parallel do private(ip,ccc) default(none)
do ip = 1, 10
ccc= aaa(ip)
end do
end subroutine sub
! Test that threadprivate variables with host association
! have a predetermined DSA
subroutine host_assoc()
integer, save :: i
!$omp threadprivate(i)
real, save :: r
!$omp threadprivate(r)
contains
subroutine internal()
!$omp parallel default(none)
print *, i, r
!$omp end parallel
end subroutine internal
end subroutine host_assoc