! RUN: %S/test_errors.sh %s %t %flang -fopenmp
! OpenMP Version 4.5
! 2.7.1 Loop Construct

program omp
  integer i, j, k

  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do  collapse(3)
  do i = 0, 10
    !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
    if (i .lt. 1) cycle
    do j = 0, 10
      do k  = 0, 10
        print *, i, j, k
      end do
    end do
  end do
  !$omp end do

  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do  collapse(3)
  do i = 0, 10
    do j = 0, 10
      !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
      if (i .lt. 1) cycle
      do k  = 0, 10
        print *, i, j, k
      end do
    end do
  end do
  !$omp end do

  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do  collapse(2)
  do i = 0, 10
    !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
    if (i .lt. 1) cycle
    do j = 0, 10
      do k  = 0, 10
        print *, i, j, k
      end do
    end do
  end do
  !$omp end do


  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do  collapse(2)
  foo: do i = 0, 10
    !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
    if (i .lt. 1) cycle foo
    do j = 0, 10
      do k  = 0, 10
        print *, i, j, k
      end do
    end do
  end do foo
  !$omp end do


  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do collapse(3)
  do 60 i=2,200,2
    do j=1,10
      !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
      if(i==100) cycle
      do k=1,10
        print *,i
      end do
    end do
  60 continue
  !$omp end do

  !$omp do  collapse(3)
  foo: do i = 0, 10
    foo1: do j = 0, 10
         foo2:  do k  = 0, 10
             !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
             if (k .lt. 1) cycle foo
             print *, i, j, k
           end do foo2
         end do foo1
  end do foo
  !$omp end do

  !$omp do  collapse(3)
  foo: do i = 0, 10
    foo1: do j = 0, 10
         foo2:  do k  = 0, 10
             !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
             if (k .lt. 1) cycle foo1
             print *, i, j, k
           end do foo2
         end do foo1
  end do foo
  !$omp end do


  !$omp do  collapse(2)
  foo: do i = 0, 10
    foo1: do j = 0, 10
         foo2:  do k  = 0, 10
             !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
             if (k .lt. 1) cycle foo
             print *, i, j, k
           end do foo2
         end do foo1
  end do foo
  !$omp end do


  !$omp do  ordered(2)
  foo: do i = 0, 10
    foo1: do j = 0, 10
             !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
             if (k .lt. 1) cycle foo
         foo2:  do k  = 0, 10
             print *, i, j, k
           end do foo2
         end do foo1
  end do foo
  !$omp end do

  !ERROR: The value of the parameter in the COLLAPSE or ORDERED clause must not be larger than the number of nested loops following the construct.
  !$omp do  collapse(2) ordered(3)
  foo: do i = 0, 10
    foo1: do j = 0, 10
             !ERROR: CYCLE statement to non-innermost associated loop of an OpenMP DO construct
             if (k .lt. 1) cycle foo
         foo2:  do k  = 0, 10
             print *, i, j, k
           end do foo2
         end do foo1
  end do foo
  !$omp end do

end program omp
