Semantic checks added to check the worksharing 'single' region closely nested inside a worksharing 'do' region. And also to check whether the 'do' iteration variable is a variable in 'Firstprivate' clause. Files: check-directive-structure.h check-omp-structure.h check-omp-structure.cpp Testcases: omp-do01-positivecase.f90 omp-do01.f90 omp-do05-positivecase.f90 omp-do05.f90 Reviewed by: Kiran Chandramohan @kiranchandramohan , Valentin Clement @clementval Differential Revision: https://reviews.llvm.org/D93205
20 lines
461 B
Fortran
20 lines
461 B
Fortran
! RUN: %S/test_symbols.sh %s %t %f18 -fopenmp
|
|
! OpenMP Version 4.5
|
|
! 2.7.1 Loop Construct
|
|
! The loop iteration variable may not appear in a firstprivate directive.
|
|
! A positive case
|
|
|
|
!DEF: /omp_do MainProgram
|
|
program omp_do
|
|
!DEF: /omp_do/i ObjectEntity INTEGER(4)
|
|
integer i
|
|
|
|
!$omp do firstprivate(k)
|
|
!DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i=1,10
|
|
print *, "Hello"
|
|
end do
|
|
!$omp end do
|
|
|
|
end program omp_do
|