blob: f5880f5009018ab6f68bb75d06dfecd796ce50c9 [file] [log] [blame]
! { dg-do compile }
!
! PR fortran/106566
!
subroutine add_one2(p)
implicit none
procedure(add_one2) :: ext1
!$omp declare simd(ext1) linear(p: ref) simdlen(8) ! { dg-error "OMP DECLARE SIMD should refer to containing procedure 'add_one2'" }
integer :: p
p = p + 1
end subroutine
subroutine linear_add_one2(p)
implicit none
procedure(linear_add_one2) :: ext2
!$omp declare simd(ext2) linear(p: ref, step(2)) simdlen(8) ! { dg-error "OMP DECLARE SIMD should refer to containing procedure 'linear_add_one2'" }
integer :: p
p = p + 1
end subroutine
module m
integer, parameter :: NN = 1023
integer :: a(NN)
contains
subroutine some_proc(r)
integer :: r
end subroutine
subroutine module_add_one2(q)
implicit none
!$omp declare simd(some_proc) linear(q: ref) simdlen(8) ! { dg-error "OMP DECLARE SIMD should refer to containing procedure 'module_add_one2'" }
integer :: q
q = q + 1
end subroutine
subroutine module_linear_add_one2(q)
implicit none
interface
subroutine other_proc(r)
integer :: r
end subroutine
end interface
!$omp declare simd(other_proc) linear(q: ref, step(2)) simdlen(8) ! { dg-error "OMP DECLARE SIMD should refer to containing procedure 'module_linear_add_one2'" }
integer :: q
q = q + 1
end subroutine
end module