[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:
Peixin Qiao 2021-07-14 09:42:26 -04:00 committed by Arnamoy Bhattacharyya
parent fe52296a34
commit 67002b5f20
3 changed files with 6 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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