blob: 7df006abd2799720a6f9564406487304c5b61677 [file] [log] [blame]
! { dg-do compile }
! { dg-options "-fopenmp" }
! Test that various non-canonical loops are rejected with a diagnostic.
subroutine s1 (a1, a2)
integer :: a1, a2
integer :: i, j
!$omp do collapse(2)
do i = 1, 16
do j = i * i, 16 ! { dg-error "not in canonical form" }
end do
end do
!$omp do collapse(2)
do i = 1, 16
do j = MAX (i, 8), 16 ! { dg-error "not in canonical form" }
end do
end do
!$omp do collapse(2)
do i = 1, 16
do j = 1, 16, i ! { dg-error "not in canonical form" }
end do
end do
!$omp do collapse(3)
do i = 1, 16
do j = 1, 16
do k = i, j ! { dg-error "reference different iteration variables" }
end do
end do
end do
!$omp do collapse(3)
do i = 1, 16
do j = 1, 16
do k = 1, i + j ! { dg-error "not in canonical form" }
end do
end do
end do
end subroutine