diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/gomp/omp_do1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/gomp/omp_do1.f90 | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/gomp/omp_do1.f90 b/gcc/testsuite/gfortran.dg/gomp/omp_do1.f90 new file mode 100644 index 000000000..c97af1ddb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/omp_do1.f90 @@ -0,0 +1,57 @@ +! { dg-do compile } +! { dg-options "-fopenmp -std=gnu" } +subroutine foo + integer :: i, j + integer, dimension (30) :: a + double precision :: d + i = 0 +!$omp do private (i) + do 100 ! { dg-error "cannot be a DO WHILE or DO without loop control" } + if (i .gt. 0) exit ! { dg-error "EXIT statement" } +100 i = i + 1 + i = 0 +!$omp do private (i) + do ! { dg-error "cannot be a DO WHILE or DO without loop control" } + if (i .gt. 0) exit ! { dg-error "EXIT statement" } + i = i + 1 + end do + i = 0 +!$omp do private (i) + do 200 while (i .lt. 4) ! { dg-error "cannot be a DO WHILE or DO without loop control" } +200 i = i + 1 +!$omp do private (i) + do while (i .lt. 8) ! { dg-error "cannot be a DO WHILE or DO without loop control" } + i = i + 1 + end do +!$omp do + do 300 d = 1, 30, 6 ! { dg-warning "Deleted feature: Loop variable" } + i = d +300 a(i) = 1 +!$omp do + do d = 1, 30, 5 ! { dg-warning "Deleted feature: Loop variable" } + i = d + a(i) = 2 + end do +!$omp do + do i = 1, 30 + if (i .eq. 16) exit ! { dg-error "EXIT statement" } + end do +!$omp do +outer: do i = 1, 30 + do j = 5, 10 + if (i .eq. 6 .and. j .eq. 7) exit outer ! { dg-error "EXIT statement" } + end do + end do outer +last: do i = 1, 30 +!$omp parallel + if (i .eq. 21) exit last ! { dg-error "leaving OpenMP structured block" } +!$omp end parallel + end do last +!$omp parallel do shared (i) + do i = 1, 30, 2 ! { dg-error "iteration variable present on clause" } + a(i) = 5 + end do +!$omp end parallel do +end subroutine +! { dg-error "iteration variable must be of type integer" "" { target *-*-* } 27 } +! { dg-error "iteration variable must be of type integer" "" { target *-*-* } 31 } |