Ivan Zhechev 6c1ac141d3 [Flang] Ported test_errors.sh to Python
To enable Flang testing on Windows, shell scripts have to be ported to Python. In this patch the "test_errors.sh" script is ported to python ("test_errors.py"). The RUN line of existing tests was changed to make use of the python script.

Used python regex in place of awk/sed.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D107575
2021-09-06 08:19:42 +00:00

102 lines
1.9 KiB
Fortran

! RUN: %python %S/test_errors.py %s %flang_fc1 -fopenmp
! OpenMP Version 4.5
! 2.7.1 Loop Construct
! The loop iteration variable may not appear in a threadprivate directive.
program omp_do
integer, save:: i, j, k,n
!$omp threadprivate(k,j,i)
!$omp do collapse(2)
!ERROR: Loop iteration variable i is not allowed in THREADPRIVATE.
do i = 1, 10
!ERROR: Loop iteration variable j is not allowed in THREADPRIVATE.
do j = 1, 10
print *, "Hello"
end do
end do
!$omp end do
end program omp_do
program omp_do1
!$omp threadprivate(k,j,i)
!$omp do
!ERROR: Loop iteration variable i is not allowed in THREADPRIVATE.
do i = 1, 10
do j = 1, 10
print *, "Hello"
end do
end do
!$omp end do
end program omp_do1
program omp_do2
!$omp threadprivate(k)
!$omp threadprivate(j)
call compute()
contains
subroutine compute()
!$omp do ordered(1) collapse(1)
!ERROR: Loop iteration variable k is not allowed in THREADPRIVATE.
foo: do k = 1, 10
do i = 1, 10
print *, "Hello"
end do
end do foo
!$omp end do
end subroutine
end program omp_do2
program omp_do3
!$omp threadprivate(i)
!$omp parallel
print *, "parallel"
!$omp end parallel
!$omp do
!ERROR: Loop iteration variable i is not allowed in THREADPRIVATE.
do i = 1, 10
do j = 1, 10
print *, "Hello"
end do
end do
!$omp end do
end program omp_do3
module tp
!integer i,j
integer, save:: i, j, k,n
!$omp threadprivate(i)
!$omp threadprivate(j)
end module tp
module usetp
use tp
end module usetp
program main
use usetp
!$omp do
!ERROR: Loop iteration variable i is not allowed in THREADPRIVATE.
do i = 1, 10
do j = 1, 10
print *, "Hello"
end do
end do
!$omp end do
end program
program main1
use tp
!$omp do
!ERROR: Loop iteration variable j is not allowed in THREADPRIVATE.
do j = 1, 10
do i = 1, 10
print *, "Hello"
end do
end do
!$omp end do
end program