1! Fortran version of PR c/67500
2! { dg-do compile }
3
4subroutine f1
5  !$omp declare simd simdlen(d)   ! { dg-error "requires a scalar INTEGER expression" }
6end subroutine
7
8subroutine f2
9  !$omp declare simd simdlen(0.5)  ! { dg-error "requires a scalar INTEGER expression" }
10end
11
12subroutine f3 (i)
13  !$omp declare simd simdlen(-2)   ! { dg-warning "INTEGER expression of SIMDLEN clause at .1. must be positive" }
14end subroutine
15
16subroutine f4
17  !$omp declare simd simdlen(0)	   ! { dg-warning "INTEGER expression of SIMDLEN clause at .1. must be positive" }
18end
19
20subroutine foo(p, d, n)
21  integer, allocatable :: p(:)
22  real, value :: d
23  integer, value :: n
24  integer :: i
25
26  !$omp simd safelen(d)     ! { dg-error "requires a scalar INTEGER expression" }
27  do i = 1, 16
28  end do
29
30  !$omp simd safelen(0.5)   ! { dg-error "requires a scalar INTEGER expression" }
31  do i = 1, 16
32  end do
33
34  !$omp simd safelen(-2)    ! { dg-warning "INTEGER expression of SAFELEN clause at .1. must be positive" }
35  do i = 1, 16
36  end do
37
38  !$omp simd safelen(0)     ! { dg-warning "INTEGER expression of SAFELEN clause at .1. must be positive" }
39  do i = 1, 16
40  end do
41
42  !$omp simd aligned(p:n)   ! { dg-error "requires a scalar positive constant integer alignment expression" }
43  do i = 1, 16
44  end do
45
46  !$omp simd aligned(p:0.5)  ! { dg-error "requires a scalar positive constant integer alignment expression" }
47  do i = 1, 16
48  end do
49
50  !$omp simd aligned(p:-2)  ! { dg-error "requires a scalar positive constant integer alignment expression" }
51  do i = 1, 16
52  end do
53
54  !$omp simd aligned(p:0)    ! { dg-error "requires a scalar positive constant integer alignment expression" }
55  do i = 1, 16
56  end do
57end
58