forked from OSchip/llvm-project
[flang][OpenMP] Fix semantic check of test case in taskloop simd construct
The following semantic check is removed in OpenMP Version 5.0: ``` Taskloop simd construct restrictions: No reduction clause can be specified. ``` Also fix several typos. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D105874
This commit is contained in:
parent
fe52296a34
commit
67002b5f20
|
@ -931,7 +931,7 @@ void OmpStructureChecker::Leave(const parser::OpenMPAtomicConstruct &) {
|
|||
// 3. Checks on clauses which are not in 'struct OmpClause' from parse-tree.h.
|
||||
|
||||
void OmpStructureChecker::Leave(const parser::OmpClauseList &) {
|
||||
// 2.7 Loop Construct Restriction
|
||||
// 2.7.1 Loop Construct Restriction
|
||||
if (llvm::omp::doSet.test(GetContext().directive)) {
|
||||
if (auto *clause{FindClause(llvm::omp::Clause::OMPC_schedule)}) {
|
||||
// only one schedule clause is allowed
|
||||
|
|
|
@ -7,8 +7,6 @@ use omp_lib
|
|||
! 2.7.1 Loop construct
|
||||
! ...
|
||||
|
||||
! TODO: all the internal errors
|
||||
|
||||
integer :: b = 128
|
||||
integer :: z, c = 32
|
||||
integer, parameter :: num = 16
|
||||
|
@ -87,7 +85,7 @@ use omp_lib
|
|||
do i = 1, N
|
||||
z = 2
|
||||
enddo
|
||||
!$omp end target data
|
||||
!$omp end target data
|
||||
|
||||
!ERROR: SCHEDULE clause is not allowed on the PARALLEL directive
|
||||
!$omp parallel schedule(static)
|
||||
|
@ -177,7 +175,7 @@ use omp_lib
|
|||
exit outofparallel
|
||||
end do inner
|
||||
end do outer
|
||||
!$end omp do
|
||||
!$omp end do
|
||||
!$omp end parallel
|
||||
end do outofparallel
|
||||
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
! RUN: %S/test_errors.sh %s %t %flang -fopenmp
|
||||
! XFAIL: *
|
||||
! REQUIRES: shell
|
||||
|
||||
! OpenMP Version 4.5
|
||||
! 2.9.3 taskloop simd Construct
|
||||
! No reduction clause may be specified for !$omp taskloop simd.
|
||||
! OpenMP Version 5.0
|
||||
! 2.10.3 taskloop simd Construct
|
||||
|
||||
program omp_taskloop_simd
|
||||
integer i , j , k
|
||||
|
||||
!ERROR: Unexpected clause specified for !$OMP taskloop simd
|
||||
!$omp taskloop simd reduction(+:k)
|
||||
do i=1,10000
|
||||
do j=1,i
|
||||
call loop_body(i, j)
|
||||
k = k + 1
|
||||
end do
|
||||
end do
|
||||
|
|
Loading…
Reference in New Issue