! { dg-do compile } ! Test that ! #pragma GCC unroll n ! rejects invalid n and improper use subroutine wrong1(n) implicit NONE integer (kind=1), intent(in) :: n integer (kind=4) :: i !GCC$ unroll 999999999 ! { dg-error "non-negative integral constant less than" } DO i=0, n, 1 call dummy1(i) ENDDO end subroutine wrong1 subroutine wrong2(a, b, n) implicit NONE integer (kind=1), intent(in) :: n integer :: a(n), b(n) integer (kind=4) :: i !GCC$ unroll -1 ! { dg-error "non-negative integral constant less than" } DO i=1, n, 2 call dummy2(a(i), b(i), i) ENDDO end subroutine wrong2 subroutine wrong3(a, b, n) implicit NONE integer (kind=1), intent(in) :: n integer :: a(n), b(n) integer (kind=4) :: i !GCC$ unroll 8 write (*,*) "wrong"! { dg-error "directive not at the start of a loop" } DO i=n, 1, -1 call dummy2(a(i), b(i), i) ENDDO end subroutine wrong3