diff --git a/libgomp/testsuite/libgomp.fortran/dispatch-1.f90 b/libgomp/testsuite/libgomp.fortran/dispatch-1.f90 index 7b2f03f9d68..f56477e4972 100644 --- a/libgomp/testsuite/libgomp.fortran/dispatch-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/dispatch-1.f90 @@ -48,16 +48,21 @@ module procedures integer :: res, n, i type(c_ptr) :: d_bv type(c_ptr) :: d_av - real(8), pointer :: fp_bv(:), fp_av(:) ! Fortran pointers for array access - ! Associate C pointers with Fortran pointers - call c_f_pointer(d_bv, fp_bv, [n]) - call c_f_pointer(d_av, fp_av, [n]) + !$omp target is_device_ptr(d_bv, d_av) + block + real(8), pointer :: fp_bv(:), fp_av(:) ! Fortran pointers for array access + + ! Associate C pointers with Fortran pointers + call c_f_pointer(d_bv, fp_bv, [n]) + call c_f_pointer(d_av, fp_av, [n]) + + ! Perform operations on target + do i = 1, n + fp_bv(i) = fp_av(i) * i + end do + end block - ! Perform operations on target - do i = 1, n - fp_bv(i) = fp_av(i) * i - end do res = -2 end function bar