+2019-12-09 Tobias Burnus <tobias@codesourcery.com>
+
+ * testsuite/libgomp.fortran/use_device_addr-3.f90: Make 'stop' codes
+ unique.
+ * testsuite/libgomp.fortran/use_device_addr-4.f90: Ditto.
+ * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto.
+ * testsuite/libgomp.oacc-fortran/declare-5.f90: Ditto.
+ * testsuite/libgomp.oacc-fortran/optional-data-copyin-by-value.f90:
+ Ditto.
+ * testsuite/libgomp.oacc-fortran/optional-firstprivate.f90: Ditto.
+ * testsuite/libgomp.oacc-fortran/optional-update-host.f90: Ditto.
+
2019-12-06 Kwok Cheung Yeung <kcy@codesourcery.com>
* config/accel/proc.c (omp_get_num_procs): Apply ialias macro.
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
call copy3_array(c_loc(aa), c_loc(bb), N)
!$omp end target data
- if (any(abs(aa - 11.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11.0_c_double) > 10.0_c_double * epsilon(aa))) stop 2
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 3
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 4
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 5
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 6
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 7
end subroutine test_dummy_callee_1
! Save device ptr - and recall pointer
! check c_loc ptr once
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 8
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 9
! check c_loc ptr again after target-value modification
aa = 1111.0_c_double
!$omp target update to(aa)
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 1111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 1111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 10
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 11
! check Fortran pointer after target-value modification
aa = 11111.0_c_double
!$omp target update to(aa)
call copy3_array(c_loc(aptr), c_loc(bptr), N)
!$omp target update from(bb)
- if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 12
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 13
!$omp end target data
- if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 14
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 15
!$omp target data map(to:cc) map(from:dd)
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 16
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 17
! check c_loc ptr again after target-value modification
cc = 3333.0_c_double
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 18
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 19
! check Fortran pointer after target-value modification
cc = 33333.0_c_double
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 20
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 21
!$omp end target data
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 22
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 23
!$omp target data map(to:ee) map(from:ff)
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 24
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 25
! check c_loc ptr again after target-value modification
ee = 5555.0_c_double
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 26
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 27
! check Fortran pointer after target-value modification
ee = 55555.0_c_double
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 28
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 29
!$omp end target data
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 30
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 31
end subroutine test_dummy_callee_2
end module test_dummies
integer, value :: N
! All shall be present - and pointing to non-NULL
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.present(ee) .or. .not.present(ff)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 32
+ if (.not.present(cc) .or. .not.present(dd)) stop 33
+ if (.not.present(ee) .or. .not.present(ff)) stop 34
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 35
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 36
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 37
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 38
call copy3_array(c_loc(aa), c_loc(bb), N)
!$omp end target data
- if (any(abs(aa - 11.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11.0_c_double) > 10.0_c_double * epsilon(aa))) stop 39
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 40
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 41
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 42
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 43
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 44
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 45
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 46
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 47
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 48
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 49
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 50
end subroutine test_dummy_opt_callee_1
subroutine test_dummy_opt_callee_1_absent(aa, bb, cc, dd, ee, ff, N)
integer, value :: N
! All shall be absent
- if (present(aa) .or. present(bb)) stop 1
- if (present(cc) .or. present(dd)) stop 1
- if (present(ee) .or. present(ff)) stop 1
+ if (present(aa) .or. present(bb)) stop 51
+ if (present(cc) .or. present(dd)) stop 52
+ if (present(ee) .or. present(ff)) stop 53
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (present(aa) .or. present(bb)) stop 1
+ if (present(aa) .or. present(bb)) stop 54
!$omp end target data
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
- if (present(cc) .or. present(dd)) stop 1
+ if (present(cc) .or. present(dd)) stop 55
!$omp end target data
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (present(ee) .or. present(ff)) stop 1
+ if (present(ee) .or. present(ff)) stop 56
!$omp end target data
end subroutine test_dummy_opt_callee_1_absent
real(c_double) :: dummy
! All shall be present - and pointing to non-NULL
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.present(ee) .or. .not.present(ff)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 57
+ if (.not.present(cc) .or. .not.present(dd)) stop 58
+ if (.not.present(ee) .or. .not.present(ff)) stop 59
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 60
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 61
aa = 111.0_c_double
bb = 222.0_c_double
!$omp target data map(to:aa) map(from:bb)
!$omp target data map(alloc:dummy) use_device_addr(aa,bb)
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 62
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 63
c_aptr = c_loc(aa)
c_bptr = c_loc(bb)
aptr => aa
bptr => bb
- if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 1
- if (.not.associated(aptr) .or. .not.associated(bptr)) stop 1
+ if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 64
+ if (.not.associated(aptr) .or. .not.associated(bptr)) stop 65
!$omp end target data
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
- if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 1
- if (.not.associated(aptr) .or. .not.associated(bptr)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 66
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 67
+ if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 68
+ if (.not.associated(aptr) .or. .not.associated(bptr)) stop 69
! check c_loc ptr once
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 70
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 71
! check c_loc ptr again after target-value modification
aa = 1111.0_c_double
!$omp target update to(aa)
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 1111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 1111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 72
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 73
! check Fortran pointer after target-value modification
aa = 11111.0_c_double
!$omp target update to(aa)
call copy3_array(c_loc(aptr), c_loc(bptr), N)
!$omp target update from(bb)
- if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 74
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 75
!$omp end target data
- if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 1
- if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_double) > 10.0_c_double * epsilon(aa))) stop 76
+ if (any(abs(3.0_c_double * aa - bb) > 10.0_c_double * epsilon(aa))) stop 77
!$omp target data map(to:cc) map(from:dd)
!$omp target data map(alloc:dummy) use_device_addr(cc,dd)
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 78
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 79
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 80
c_cptr = c_loc(cc)
c_dptr = c_loc(dd)
cptr => cc
dptr => dd
- if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 1
- if (.not.associated(cptr) .or. .not.associated(dptr)) stop 1
+ if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 81
+ if (.not.associated(cptr) .or. .not.associated(dptr)) stop 82
!$omp end target data
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
- if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 1
- if (.not.associated(cptr) .or. .not.associated(dptr)) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 83
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 84
+ if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 85
+ if (.not.associated(cptr) .or. .not.associated(dptr)) stop 86
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 87
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 88
! check c_loc ptr again after target-value modification
cc = 3333.0_c_double
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 89
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 90
! check Fortran pointer after target-value modification
cc = 33333.0_c_double
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 91
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 92
!$omp end target data
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 93
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 94
!$omp target data map(to:ee) map(from:ff)
!$omp target data map(alloc:dummy) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 95
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 96
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 97
c_eptr = c_loc(ee)
c_fptr = c_loc(ff)
eptr => ee
fptr => ff
- if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 1
- if (.not.associated(eptr) .or. .not.associated(fptr)) stop 1
+ if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 98
+ if (.not.associated(eptr) .or. .not.associated(fptr)) stop 99
!$omp end target data
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
- if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 1
- if (.not.associated(eptr) .or. .not.associated(fptr)) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 100
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 101
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 102
+ if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 103
+ if (.not.associated(eptr) .or. .not.associated(fptr)) stop 104
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 105
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 106
! check c_loc ptr again after target-value modification
ee = 5555.0_c_double
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 107
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 108
! check Fortran pointer after target-value modification
ee = 55555.0_c_double
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 109
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 110
!$omp end target data
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 111
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 112
end subroutine test_dummy_opt_callee_2
end module test_dummies_opt
ee => null()
ff => null()
- if (associated(aa) .or. associated(bb)) stop 1
+ if (associated(aa) .or. associated(bb)) stop 113
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (c_associated(c_loc(aa)) .or. c_associated(c_loc(bb))) stop 1
+ if (c_associated(c_loc(aa)) .or. c_associated(c_loc(bb))) stop 114
c_aptr = c_loc(aa)
c_bptr = c_loc(bb)
aptr => aa
bptr => bb
- if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 1
- if (associated(aptr) .or. associated(bptr, bb)) stop 1
- if (associated(aa) .or. associated(bb)) stop 1
+ if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 115
+ if (associated(aptr) .or. associated(bptr, bb)) stop 116
+ if (associated(aa) .or. associated(bb)) stop 117
!$omp end target data
- if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 1
- if (associated(aptr) .or. associated(bptr, bb)) stop 1
- if (associated(aa) .or. associated(bb)) stop 1
+ if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 118
+ if (associated(aptr) .or. associated(bptr, bb)) stop 119
+ if (associated(aa) .or. associated(bb)) stop 120
- if (allocated(gg)) stop 1
+ if (allocated(gg)) stop 121
!$omp target data map(tofrom:gg) use_device_addr(gg)
- if (c_associated(c_loc(gg))) stop 1
+ if (c_associated(c_loc(gg))) stop 122
c_gptr = c_loc(gg)
gptr => gg
- if (c_associated(c_gptr)) stop 1
- if (associated(gptr)) stop 1
- if (allocated(gg)) stop 1
+ if (c_associated(c_gptr)) stop 123
+ if (associated(gptr)) stop 124
+ if (allocated(gg)) stop 125
!$omp end target data
- if (c_associated(c_gptr)) stop 1
- if (associated(gptr)) stop 1
- if (allocated(gg)) stop 1
+ if (c_associated(c_gptr)) stop 126
+ if (associated(gptr)) stop 127
+ if (allocated(gg)) stop 128
call test_dummy_opt_nullptr_callee_1(ee, ff, hh, c_eptr, c_fptr, c_hptr, eptr, fptr, hptr)
end subroutine test_nullptr_1
type(c_ptr), optional :: c_eptr, c_fptr, c_hptr
real(c_double), optional, pointer :: eptr(:), fptr(:), hptr(:)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (associated(ee) .or. associated(ff)) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 129
+ if (associated(ee) .or. associated(ff)) stop 130
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (associated(ee) .or. associated(ff)) stop 1
- if (c_associated(c_loc(ee)) .or. c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 131
+ if (associated(ee) .or. associated(ff)) stop 132
+ if (c_associated(c_loc(ee)) .or. c_associated(c_loc(ff))) stop 133
c_eptr = c_loc(ee)
c_fptr = c_loc(ff)
eptr => ee
fptr => ff
- if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 1
- if (associated(eptr) .or. associated(fptr)) stop 1
+ if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 134
+ if (associated(eptr) .or. associated(fptr)) stop 135
!$omp end target data
- if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 1
- if (associated(eptr) .or. associated(fptr)) stop 1
+ if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 136
+ if (associated(eptr) .or. associated(fptr)) stop 137
- if (allocated(hh)) stop 1
+ if (allocated(hh)) stop 138
!$omp target data map(tofrom:hh) use_device_addr(hh)
- if (c_associated(c_loc(hh))) stop 1
+ if (c_associated(c_loc(hh))) stop 139
c_hptr = c_loc(hh)
hptr => hh
- if (c_associated(c_hptr)) stop 1
- if (associated(hptr)) stop 1
- if (allocated(hh)) stop 1
+ if (c_associated(c_hptr)) stop 140
+ if (associated(hptr)) stop 141
+ if (allocated(hh)) stop 142
!$omp end target data
- if (c_associated(c_hptr)) stop 1
- if (associated(hptr)) stop 1
- if (allocated(hh)) stop 1
+ if (c_associated(c_hptr)) stop 143
+ if (associated(hptr)) stop 144
+ if (allocated(hh)) stop 145
end subroutine test_dummy_opt_nullptr_callee_1
end module test_nullptr
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_double) > 10.0_c_double * epsilon(cc))) stop 146
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 147
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_double) > 10.0_c_double * epsilon(ee))) stop 148
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 149
deallocate(ee, ff) ! pointers, only
end subroutine test_main_1
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 150
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 151
! check c_loc ptr again after target-value modification
cc = 3333.0_c_double
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 152
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 153
! check Fortran pointer after target-value modification
cc = 33333.0_c_double
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(cc))) stop 154
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(cc))) stop 155
!$omp end target data
- if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 1
- if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_double) > 10.0_c_double * epsilon(dd))) stop 156
+ if (any(abs(3.0_c_double * cc - dd) > 10.0_c_double * epsilon(dd))) stop 157
!$omp target data map(to:ee) map(from:ff)
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 158
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 159
! check c_loc ptr again after target-value modification
ee = 5555.0_c_double
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 160
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 161
! check Fortran pointer after target-value modification
ee = 55555.0_c_double
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 162
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ff))) stop 163
!$omp end target data
- if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 1
- if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_double) > 10.0_c_double * epsilon(ee))) stop 164
+ if (any(abs(3.0_c_double * ee - ff) > 10.0_c_double * epsilon(ee))) stop 165
deallocate(ee, ff)
end subroutine test_main_2
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
call copy3_array(c_loc(aa), c_loc(bb), N)
!$omp end target data
- if (any(abs(aa - 11.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11.0_c_float) > 10.0_c_float * epsilon(aa))) stop 2
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 3
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 4
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 5
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 6
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 7
end subroutine test_dummy_callee_1
! Save device ptr - and recall pointer
! check c_loc ptr once
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 8
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 9
! check c_loc ptr again after target-value modification
aa = 1111.0_c_float
!$omp target update to(aa)
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 1111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 1111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 10
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 11
! check Fortran pointer after target-value modification
aa = 11111.0_c_float
!$omp target update to(aa)
call copy3_array(c_loc(aptr), c_loc(bptr), N)
!$omp target update from(bb)
- if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 12
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 13
!$omp end target data
- if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 14
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 15
!$omp target data map(to:cc) map(from:dd)
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 16
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 17
! check c_loc ptr again after target-value modification
cc = 3333.0_c_float
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 18
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 19
! check Fortran pointer after target-value modification
cc = 33333.0_c_float
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 20
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 21
!$omp end target data
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 22
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 23
!$omp target data map(to:ee) map(from:ff)
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 24
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 25
! check c_loc ptr again after target-value modification
ee = 5555.0_c_float
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 26
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 27
! check Fortran pointer after target-value modification
ee = 55555.0_c_float
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 28
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 29
!$omp end target data
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 30
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 31
end subroutine test_dummy_callee_2
end module test_dummies
integer, value :: N
! All shall be present - and pointing to non-NULL
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.present(ee) .or. .not.present(ff)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 32
+ if (.not.present(cc) .or. .not.present(dd)) stop 33
+ if (.not.present(ee) .or. .not.present(ff)) stop 34
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 35
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 36
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 37
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 38
call copy3_array(c_loc(aa), c_loc(bb), N)
!$omp end target data
- if (any(abs(aa - 11.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11.0_c_float) > 10.0_c_float * epsilon(aa))) stop 39
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 40
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 41
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 42
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 43
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 44
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 45
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 46
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 47
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 48
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 49
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 50
end subroutine test_dummy_opt_callee_1
subroutine test_dummy_opt_callee_1_absent(aa, bb, cc, dd, ee, ff, N)
integer, value :: N
! All shall be absent
- if (present(aa) .or. present(bb)) stop 1
- if (present(cc) .or. present(dd)) stop 1
- if (present(ee) .or. present(ff)) stop 1
+ if (present(aa) .or. present(bb)) stop 51
+ if (present(cc) .or. present(dd)) stop 52
+ if (present(ee) .or. present(ff)) stop 53
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (present(aa) .or. present(bb)) stop 1
+ if (present(aa) .or. present(bb)) stop 54
!$omp end target data
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
- if (present(cc) .or. present(dd)) stop 1
+ if (present(cc) .or. present(dd)) stop 55
!$omp end target data
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (present(ee) .or. present(ff)) stop 1
+ if (present(ee) .or. present(ff)) stop 56
!$omp end target data
end subroutine test_dummy_opt_callee_1_absent
real(c_float) :: dummy
! All shall be present - and pointing to non-NULL
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.present(ee) .or. .not.present(ff)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 57
+ if (.not.present(cc) .or. .not.present(dd)) stop 58
+ if (.not.present(ee) .or. .not.present(ff)) stop 59
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 60
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 61
aa = 111.0_c_float
bb = 222.0_c_float
!$omp target data map(to:aa) map(from:bb)
!$omp target data map(alloc:dummy) use_device_addr(aa,bb)
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 62
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 63
c_aptr = c_loc(aa)
c_bptr = c_loc(bb)
aptr => aa
bptr => bb
- if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 1
- if (.not.associated(aptr) .or. .not.associated(bptr)) stop 1
+ if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 64
+ if (.not.associated(aptr) .or. .not.associated(bptr)) stop 65
!$omp end target data
- if (.not.present(aa) .or. .not.present(bb)) stop 1
- if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 1
- if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 1
- if (.not.associated(aptr) .or. .not.associated(bptr)) stop 1
+ if (.not.present(aa) .or. .not.present(bb)) stop 66
+ if (.not.c_associated(c_loc(aa)) .or. .not.c_associated(c_loc(bb))) stop 67
+ if (.not.c_associated(c_aptr) .or. .not.c_associated(c_bptr)) stop 68
+ if (.not.associated(aptr) .or. .not.associated(bptr)) stop 69
! check c_loc ptr once
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 70
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 71
! check c_loc ptr again after target-value modification
aa = 1111.0_c_float
!$omp target update to(aa)
call copy3_array(c_aptr, c_bptr, N)
!$omp target update from(bb)
- if (any(abs(aa - 1111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 1111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 72
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 73
! check Fortran pointer after target-value modification
aa = 11111.0_c_float
!$omp target update to(aa)
call copy3_array(c_loc(aptr), c_loc(bptr), N)
!$omp target update from(bb)
- if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 74
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 75
!$omp end target data
- if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 1
- if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 1
+ if (any(abs(aa - 11111.0_c_float) > 10.0_c_float * epsilon(aa))) stop 76
+ if (any(abs(3.0_c_float * aa - bb) > 10.0_c_float * epsilon(aa))) stop 77
!$omp target data map(to:cc) map(from:dd)
!$omp target data map(alloc:dummy) use_device_addr(cc,dd)
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.allocated(cc) .or. .not.allocated(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 78
+ if (.not.allocated(cc) .or. .not.allocated(dd)) stop 79
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 80
c_cptr = c_loc(cc)
c_dptr = c_loc(dd)
cptr => cc
dptr => dd
- if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 1
- if (.not.associated(cptr) .or. .not.associated(dptr)) stop 1
+ if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 81
+ if (.not.associated(cptr) .or. .not.associated(dptr)) stop 82
!$omp end target data
- if (.not.present(cc) .or. .not.present(dd)) stop 1
- if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 1
- if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 1
- if (.not.associated(cptr) .or. .not.associated(dptr)) stop 1
+ if (.not.present(cc) .or. .not.present(dd)) stop 83
+ if (.not.c_associated(c_loc(cc)) .or. .not.c_associated(c_loc(dd))) stop 84
+ if (.not.c_associated(c_cptr) .or. .not.c_associated(c_dptr)) stop 85
+ if (.not.associated(cptr) .or. .not.associated(dptr)) stop 86
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 87
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 88
! check c_loc ptr again after target-value modification
cc = 3333.0_c_float
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 89
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 90
! check Fortran pointer after target-value modification
cc = 33333.0_c_float
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 91
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 92
!$omp end target data
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 93
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 94
!$omp target data map(to:ee) map(from:ff)
!$omp target data map(alloc:dummy) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 95
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 96
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 97
c_eptr = c_loc(ee)
c_fptr = c_loc(ff)
eptr => ee
fptr => ff
- if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 1
- if (.not.associated(eptr) .or. .not.associated(fptr)) stop 1
+ if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 98
+ if (.not.associated(eptr) .or. .not.associated(fptr)) stop 99
!$omp end target data
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (.not.associated(ee) .or. .not.associated(ff)) stop 1
- if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 1
- if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 1
- if (.not.associated(eptr) .or. .not.associated(fptr)) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 100
+ if (.not.associated(ee) .or. .not.associated(ff)) stop 101
+ if (.not.c_associated(c_loc(ee)) .or. .not.c_associated(c_loc(ff))) stop 102
+ if (.not.c_associated(c_eptr) .or. .not.c_associated(c_fptr)) stop 103
+ if (.not.associated(eptr) .or. .not.associated(fptr)) stop 104
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 105
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 106
! check c_loc ptr again after target-value modification
ee = 5555.0_c_float
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 107
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 108
! check Fortran pointer after target-value modification
ee = 55555.0_c_float
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 109
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 110
!$omp end target data
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 111
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 112
end subroutine test_dummy_opt_callee_2
end module test_dummies_opt
ee => null()
ff => null()
- if (associated(aa) .or. associated(bb)) stop 1
+ if (associated(aa) .or. associated(bb)) stop 113
!$omp target data map(to:aa) map(from:bb) use_device_addr(aa,bb)
- if (c_associated(c_loc(aa)) .or. c_associated(c_loc(bb))) stop 1
+ if (c_associated(c_loc(aa)) .or. c_associated(c_loc(bb))) stop 114
c_aptr = c_loc(aa)
c_bptr = c_loc(bb)
aptr => aa
bptr => bb
- if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 1
- if (associated(aptr) .or. associated(bptr, bb)) stop 1
- if (associated(aa) .or. associated(bb)) stop 1
+ if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 115
+ if (associated(aptr) .or. associated(bptr, bb)) stop 116
+ if (associated(aa) .or. associated(bb)) stop 117
!$omp end target data
- if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 1
- if (associated(aptr) .or. associated(bptr, bb)) stop 1
- if (associated(aa) .or. associated(bb)) stop 1
+ if (c_associated(c_aptr) .or. c_associated(c_bptr)) stop 118
+ if (associated(aptr) .or. associated(bptr, bb)) stop 119
+ if (associated(aa) .or. associated(bb)) stop 120
- if (allocated(gg)) stop 1
+ if (allocated(gg)) stop 121
!$omp target data map(tofrom:gg) use_device_addr(gg)
- if (c_associated(c_loc(gg))) stop 1
+ if (c_associated(c_loc(gg))) stop 122
c_gptr = c_loc(gg)
gptr => gg
- if (c_associated(c_gptr)) stop 1
- if (associated(gptr)) stop 1
- if (allocated(gg)) stop 1
+ if (c_associated(c_gptr)) stop 123
+ if (associated(gptr)) stop 124
+ if (allocated(gg)) stop 125
!$omp end target data
- if (c_associated(c_gptr)) stop 1
- if (associated(gptr)) stop 1
- if (allocated(gg)) stop 1
+ if (c_associated(c_gptr)) stop 126
+ if (associated(gptr)) stop 127
+ if (allocated(gg)) stop 128
call test_dummy_opt_nullptr_callee_1(ee, ff, hh, c_eptr, c_fptr, c_hptr, eptr, fptr, hptr)
end subroutine test_nullptr_1
type(c_ptr), optional :: c_eptr, c_fptr, c_hptr
real(c_float), optional, pointer :: eptr(:), fptr(:), hptr(:)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (associated(ee) .or. associated(ff)) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 129
+ if (associated(ee) .or. associated(ff)) stop 130
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
- if (.not.present(ee) .or. .not.present(ff)) stop 1
- if (associated(ee) .or. associated(ff)) stop 1
- if (c_associated(c_loc(ee)) .or. c_associated(c_loc(ff))) stop 1
+ if (.not.present(ee) .or. .not.present(ff)) stop 131
+ if (associated(ee) .or. associated(ff)) stop 132
+ if (c_associated(c_loc(ee)) .or. c_associated(c_loc(ff))) stop 133
c_eptr = c_loc(ee)
c_fptr = c_loc(ff)
eptr => ee
fptr => ff
- if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 1
- if (associated(eptr) .or. associated(fptr)) stop 1
+ if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 134
+ if (associated(eptr) .or. associated(fptr)) stop 135
!$omp end target data
- if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 1
- if (associated(eptr) .or. associated(fptr)) stop 1
+ if (c_associated(c_eptr) .or. c_associated(c_fptr)) stop 136
+ if (associated(eptr) .or. associated(fptr)) stop 137
- if (allocated(hh)) stop 1
+ if (allocated(hh)) stop 138
!$omp target data map(tofrom:hh) use_device_addr(hh)
- if (c_associated(c_loc(hh))) stop 1
+ if (c_associated(c_loc(hh))) stop 139
c_hptr = c_loc(hh)
hptr => hh
- if (c_associated(c_hptr)) stop 1
- if (associated(hptr)) stop 1
- if (allocated(hh)) stop 1
+ if (c_associated(c_hptr)) stop 140
+ if (associated(hptr)) stop 141
+ if (allocated(hh)) stop 142
!$omp end target data
- if (c_associated(c_hptr)) stop 1
- if (associated(hptr)) stop 1
- if (allocated(hh)) stop 1
+ if (c_associated(c_hptr)) stop 143
+ if (associated(hptr)) stop 144
+ if (allocated(hh)) stop 145
end subroutine test_dummy_opt_nullptr_callee_1
end module test_nullptr
!$omp target data map(to:cc) map(from:dd) use_device_addr(cc,dd)
call copy3_array(c_loc(cc), c_loc(dd), N)
!$omp end target data
- if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33.0_c_float) > 10.0_c_float * epsilon(cc))) stop 146
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 147
!$omp target data map(to:ee) map(from:ff) use_device_addr(ee,ff)
call copy3_array(c_loc(ee), c_loc(ff), N)
!$omp end target data
- if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55.0_c_float) > 10.0_c_float * epsilon(ee))) stop 148
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 149
deallocate(ee, ff) ! pointers, only
end subroutine test_main_1
! check c_loc ptr once
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 150
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 151
! check c_loc ptr again after target-value modification
cc = 3333.0_c_float
!$omp target update to(cc)
call copy3_array(c_cptr, c_dptr, N)
!$omp target update from(dd)
- if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 3333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 152
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 153
! check Fortran pointer after target-value modification
cc = 33333.0_c_float
!$omp target update to(cc)
call copy3_array(c_loc(cptr), c_loc(dptr), N)
!$omp target update from(dd)
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(cc))) stop 154
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(cc))) stop 155
!$omp end target data
- if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 1
- if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 1
+ if (any(abs(cc - 33333.0_c_float) > 10.0_c_float * epsilon(dd))) stop 156
+ if (any(abs(3.0_c_float * cc - dd) > 10.0_c_float * epsilon(dd))) stop 157
!$omp target data map(to:ee) map(from:ff)
! check c_loc ptr once
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 158
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 159
! check c_loc ptr again after target-value modification
ee = 5555.0_c_float
!$omp target update to(ee)
call copy3_array(c_eptr, c_fptr, N)
!$omp target update from(ff)
- if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 5555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 160
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 161
! check Fortran pointer after target-value modification
ee = 55555.0_c_float
!$omp target update to(ee)
call copy3_array(c_loc(eptr), c_loc(fptr), N)
!$omp target update from(ff)
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 162
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ff))) stop 163
!$omp end target data
- if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 1
- if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 1
+ if (any(abs(ee - 55555.0_c_float) > 10.0_c_float * epsilon(ee))) stop 164
+ if (any(abs(3.0_c_float * ee - ff) > 10.0_c_float * epsilon(ee))) stop 165
deallocate(ee, ff)
end subroutine test_main_2
if (present(z)) then; z(1) = 5; stop 15; endif
if (present(cptr)) then; cptr = c_loc(v); stop 16; endif
if (present(cptr_in)) then
- if (c_associated(cptr_in, c_loc(x))) stop 26
- stop 27
+ if (c_associated(cptr_in, c_loc(x))) stop 17
+ stop 18
endif
!$omp end target data
if (.not. acc_is_present (y)) stop 7
if (.not. acc_is_present (z)) stop 8
- if (a /= 3.0) stop 3
- if (k /= -378) stop 3
+ if (a /= 3.0) stop 30
+ if (k /= -378) stop 31
end program test
integer :: res
if (foo(27) .ne. 27) stop 1
- if (foo(16, 18) .ne. 288) stop 1
+ if (foo(16, 18) .ne. 288) stop 2
contains
function foo(x, y)
integer, value :: x
call test_allocatable(res_alloc, a_alloc, b_alloc, c_alloc)
do i = 1, n
- if (res_alloc(i) .ne. a_alloc(i) * b_alloc(i) + c_alloc(i)) stop 2
+ if (res_alloc(i) .ne. a_alloc(i) * b_alloc(i) + c_alloc(i)) stop 3
end do
deallocate(a_alloc)
call test_array(a_arr, b_arr)
do i = 1, n
- if (res_arr(i) .ne. 0) stop 1
+ if (res_arr(i) .ne. 0) stop 3
end do
call test_array(a_arr, b_arr, res_arr)
do i = 1, n
- if (res_arr(i) .ne. a_arr(i) * b_arr(i)) stop 2
+ if (res_arr(i) .ne. a_arr(i) * b_arr(i)) stop 4
end do
allocate(a_alloc(n))
call test_allocatable(a_alloc, b_alloc)
do i = 1, n
- if (res_alloc(i) .ne. 0) stop 1
+ if (res_alloc(i) .ne. 0) stop 5
end do
call test_allocatable(a_alloc, b_alloc, res_alloc)
do i = 1, n
- if (res_alloc(i) .ne. a_alloc(i) * b_alloc(i)) stop 2
+ if (res_alloc(i) .ne. a_alloc(i) * b_alloc(i)) stop 6
end do
deallocate(a_alloc)