Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions offload/test/mapping/alloc_fail.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// RUN: %libomptarget-run-fail-generic 2>&1 \
// RUN: | %fcheck-generic

// CHECK: omptarget message: explicit extension not allowed: host address specified is 0x{{.*}} (8 bytes), but device allocation maps to host at 0x{{.*}} (8 bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer (device failure or illegal mapping).
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: explicit extension not allowed: host address specified is 0x{{.*}} (8 bytes), but device allocation maps to host at 0x{{.*}} (8 bytes)
// CHECK: error: Call to getTargetPointer returned null pointer (device failure or illegal mapping).
// CHECK: fatal error 1: failure of target construct while offloading is mandatory

int main() {
int arr[4] = {0, 1, 2, 3};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ int main() {
s1.q = s1.p = &x[0];

// clang-format off
// DEBUG: omptarget --> HstPtrBegin 0x[[#%x,HOST_ADDRX:]] was newly allocated for the current region
// DEBUG: omptarget --> Moving [[#%u,SIZEX:]] bytes (hst:0x{{0*}}[[#HOST_ADDRX]]) -> (tgt:0x{{.*}})
// DEBUG: --> HstPtrBegin 0x[[#%x,HOST_ADDRX:]] was newly allocated for the current region
// DEBUG: --> Moving [[#%u,SIZEX:]] bytes (hst:0x{{0*}}[[#HOST_ADDRX]]) -> (tgt:0x{{.*}})
// clang-format on
#pragma omp target map(alloc : s1.p[0 : 10]) \
map(mapper(my_mapper), tofrom : s1) // (1)
Expand All @@ -39,8 +39,8 @@ int main() {
}

// clang-format off
// DEBUG: omptarget --> Found skipped FROM entry: HstPtr=0x{{0*}}[[#HOST_ADDRX]] size=[[#SIZEX]] within region being released
// DEBUG: omptarget --> Moving [[#SIZEX]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDRX]])
// DEBUG: --> Found skipped FROM entry: HstPtr=0x{{0*}}[[#HOST_ADDRX]] size=[[#SIZEX]] within region being released
// DEBUG: --> Moving [[#SIZEX]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDRX]])
// clang-format on
printf("After tgt: %d\n", s1.p[1]); // CHECK: After tgt: 222
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ int main() {

#pragma omp target data map(alloc : x) // (1)
{
// DEBUG-NOT: omptarget --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
// DEBUG-NOT: --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
#pragma omp target map(mapper(my_mapper), tofrom : s1) // (2)
{
// NOTE: It's ok for this to be 111 under "unified_shared_memory"
Expand All @@ -43,7 +43,7 @@ int main() {
printf("After tgt: %d\n", s1.p[1]); // CHECK: After tgt: 222
}
// clang-format off
// DEBUG: omptarget --> Found skipped FROM entry: HstPtr=0x[[#%x,HOST_ADDR:]] size=[[#%u,SIZE:]] within region being released
// DEBUG: omptarget --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// DEBUG: --> Found skipped FROM entry: HstPtr=0x[[#%x,HOST_ADDR:]] size=[[#%u,SIZE:]] within region being released
// DEBUG: --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// clang-format on
}
4 changes: 2 additions & 2 deletions offload/test/mapping/map_ordering_tgt_alloc_from_to.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
int main() {
int x = 111;
// clang-format off
// DEBUG: omptarget --> HstPtrBegin 0x[[#%x,HOST_ADDR:]] was newly allocated for the current region
// DEBUG: omptarget --> Moving {{.*}} bytes (hst:0x{{0*}}[[#HOST_ADDR]]) -> (tgt:0x{{.*}})
// DEBUG: --> HstPtrBegin 0x[[#%x,HOST_ADDR:]] was newly allocated for the current region
// DEBUG: --> Moving {{.*}} bytes (hst:0x{{0*}}[[#HOST_ADDR]]) -> (tgt:0x{{.*}})
// clang-format on
#pragma omp target map(alloc : x) map(from : x) map(to : x) map(alloc : x)
{
Expand Down
10 changes: 5 additions & 5 deletions offload/test/mapping/map_ordering_tgt_alloc_present_tofrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ int main() {
fprintf(stderr, "addr=%p, size=%ld\n", &x, sizeof(x));

// clang-format off
// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget error: Pointer 0x{{0*}}[[#HOST_ADDR]] was not present on the device upon entry to the region.
// CHECK: omptarget error: Call to targetDataBegin failed, abort target.
// CHECK: omptarget error: Failed to process data before launching the kernel.
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: error: Pointer 0x{{0*}}[[#HOST_ADDR]] was not present on the device upon entry to the region.
// CHECK: error: Call to targetDataBegin failed, abort target.
// CHECK: error: Failed to process data before launching the kernel.
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
// clang-format on
#pragma omp target map(alloc : x) map(present, alloc : x) map(tofrom : x)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ int main() {
#pragma omp target data map(alloc : x)
{
#pragma omp target enter data map(alloc : x) map(to : x)
// DEBUG-NOT: omptarget --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
// DEBUG-NOT: --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
#pragma omp target map(present, alloc : x)
{
printf("In tgt: %d\n", x);
x = 222;
}
#pragma omp target exit data map(always, from : x) map(always, from : x)
// DEBUG: omptarget --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{.*}})
// DEBUG-NOT: omptarget --> Moving {{.*}} bytes
// DEBUG: --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{.*}})
// DEBUG-NOT: --> Moving {{.*}} bytes
}

printf("After tgt exit data: %d\n", x); // CHECK: After tgt exit data: 222
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ int main() {
#pragma omp target data map(alloc : x)
{
#pragma omp target enter data map(alloc : x) map(to : x)
// DEBUG-NOT: omptarget --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
// DEBUG-NOT: --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
#pragma omp target map(present, alloc : x)
{
printf("In tgt: %d\n", x[1]);
Expand All @@ -31,8 +31,8 @@ int main() {

#pragma omp target exit data map(delete : p1x[ : ]) map(from : p2x[1])
// clang-format off
// DEBUG: omptarget --> Found skipped FROM entry: HstPtr=0x[[#%x,HOST_ADDR:]] size=[[#%u,SIZE:]] within region being released
// DEBUG: omptarget --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// DEBUG: --> Found skipped FROM entry: HstPtr=0x[[#%x,HOST_ADDR:]] size=[[#%u,SIZE:]] within region being released
// DEBUG: --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// clang-format on

// CHECK: After tgt exit data: 222
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ int main() {
#pragma omp target data map(alloc : x)
{
#pragma omp target enter data map(alloc : x) map(to : x)
// DEBUG-NOT: omptarget --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
// DEBUG-NOT: --> Moving {{.*}} bytes (hst:0x{{.*}}) -> (tgt:0x{{.*}})
#pragma omp target map(present, alloc : x)
{
printf("In tgt: %d\n", x[1]);
Expand All @@ -31,8 +31,8 @@ int main() {

#pragma omp target exit data map(from : p2x[0]) map(delete : p1x[ : ])
// clang-format off
// DEBUG: omptarget --> Pointer HstPtr=0x[[#%x,HOST_ADDR:]] falls within a range previously released
// DEBUG: omptarget --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// DEBUG: --> Pointer HstPtr=0x[[#%x,HOST_ADDR:]] falls within a range previously released
// DEBUG: --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// clang-format on

// CHECK: After tgt exit data: 222
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ int main() {
}

// clang-format off
// DEBUG: omptarget --> Tracking released entry: HstPtr=0x[[#%x,HOST_ADDR:]], Size=[[#%u,SIZE:]], ForceDelete=0
// DEBUG: omptarget --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{.*}})
// DEBUG: omptarget --> Pointer HstPtr=0x{{0*}}[[#HOST_ADDR]] falls within a range previously released
// DEBUG: omptarget --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// DEBUG: --> Tracking released entry: HstPtr=0x[[#%x,HOST_ADDR:]], Size=[[#%u,SIZE:]], ForceDelete=0
// DEBUG: --> Moving {{.*}} bytes (tgt:0x{{.*}}) -> (hst:0x{{.*}})
// DEBUG: --> Pointer HstPtr=0x{{0*}}[[#HOST_ADDR]] falls within a range previously released
// DEBUG: --> Moving [[#SIZE]] bytes (tgt:0x{{.*}}) -> (hst:0x{{0*}}[[#HOST_ADDR]])
// clang-format on
#pragma omp target exit data map(from : s1) map(mapper(my_mapper), from : s1.s2)

Expand Down
2 changes: 1 addition & 1 deletion offload/test/mapping/map_ptr_then_ptee_then_attach.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ void f1() {

#pragma omp target enter data map(to : p[0 : 0]) // Implies: attach(auto)
// clang-format off
// DEBUG: omptarget --> Treating ATTACH(auto) as ATTACH(always) because LIBOMPTARGET_TREAT_ATTACH_AUTO_AS_ALWAYS is true
// DEBUG: --> Treating ATTACH(auto) as ATTACH(always) because LIBOMPTARGET_TREAT_ATTACH_AUTO_AS_ALWAYS is true
// clang-format on

#pragma omp target map(present, alloc : p) map(from : p0_deviceaddr)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ int main(int argc, char *argv[]) {
#pragma omp target data map(ompx_hold, alloc : X)
#endif
{
// CHECK: omptarget error: Trying to disassociate a pointer with a
// CHECK: error: Trying to disassociate a pointer with a
// CHECK-SAME: non-zero hold reference count
// CHECK-NEXT: omp_target_disassociate_ptr failed
if (omp_target_disassociate_ptr(&X, DevNum)) {
Expand Down
6 changes: 3 additions & 3 deletions offload/test/mapping/padding_not_mapped.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ int main() {
#pragma omp target update from(s.x) // should have no effect
fprintf(stderr, "s.x = %d\n", s.x);

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target enter data map(present, alloc: s.x)

return 0;
Expand Down
10 changes: 5 additions & 5 deletions offload/test/mapping/present/target.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ int main() {
// CHECK: i is present
fprintf(stderr, "i is present\n");

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget error: Call to targetDataBegin failed, abort target.
// CHECK: omptarget error: Failed to process data before launching the kernel.
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: error: Call to targetDataBegin failed, abort target.
// CHECK: error: Failed to process data before launching the kernel.
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target map(present, alloc : i)
;

Expand Down
12 changes: 6 additions & 6 deletions offload/test/mapping/present/target_array_extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ int main() {
// CHECK: arr is present
fprintf(stderr, "arr is present\n");

// CHECK: omptarget message: explicit extension not allowed: host address specified is 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes), but device allocation maps to host at 0x{{0*}}[[#SMALL_ADDR]] ([[#SMALL_BYTES]] bytes)
// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget error: Call to targetDataBegin failed, abort target.
// CHECK: omptarget error: Failed to process data before launching the kernel.
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: explicit extension not allowed: host address specified is 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes), but device allocation maps to host at 0x{{0*}}[[#SMALL_ADDR]] ([[#SMALL_BYTES]] bytes)
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: error: Call to targetDataBegin failed, abort target.
// CHECK: error: Failed to process data before launching the kernel.
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target data map(alloc : arr[SMALL])
{
#pragma omp target map(present, tofrom : arr[LARGE])
Expand Down
4 changes: 2 additions & 2 deletions offload/test/mapping/present/target_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ int main() {
// CHECK: i is present
fprintf(stderr, "i is present\n");

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target data map(present, alloc : i)
;

Expand Down
8 changes: 4 additions & 4 deletions offload/test/mapping/present/target_data_array_extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ int main() {
// CHECK: arr is present
fprintf(stderr, "arr is present\n");

// CHECK: omptarget message: explicit extension not allowed: host address specified is 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes), but device allocation maps to host at 0x{{0*}}[[#SMALL_ADDR]] ([[#SMALL_BYTES]] bytes)
// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: explicit extension not allowed: host address specified is 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes), but device allocation maps to host at 0x{{0*}}[[#SMALL_ADDR]] ([[#SMALL_BYTES]] bytes)
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#LARGE_ADDR]] ([[#LARGE_BYTES]] bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target data map(alloc : arr[SMALL])
{
#pragma omp target data map(present, tofrom : arr[LARGE])
Expand Down
6 changes: 3 additions & 3 deletions offload/test/mapping/present/target_enter_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ int main() {
// CHECK: i is present
fprintf(stderr, "i is present\n");

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target enter data map(present, alloc : i)

// CHECK-NOT: i is present
Expand Down
4 changes: 2 additions & 2 deletions offload/test/mapping/present/target_exit_data_delete.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ int main() {
// CHECK: i was present
fprintf(stderr, "i was present\n");

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target exit data map(present, delete : i)

// CHECK-NOT: i was present
Expand Down
4 changes: 2 additions & 2 deletions offload/test/mapping/present/target_exit_data_release.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ int main() {
// CHECK: i was present
fprintf(stderr, "i was present\n");

// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target exit data map(present, release : i)

// CHECK-NOT: i was present
Expand Down
4 changes: 2 additions & 2 deletions offload/test/mapping/present/target_update.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ int main() {
// CHECK: i is present
fprintf(stderr, "i is present\n");

// CHECK: omptarget message: device mapping required by 'present' motion modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' motion modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target update CLAUSE(present : i)

// CHECK-NOT: i is present
Expand Down
4 changes: 2 additions & 2 deletions offload/test/mapping/present/target_update_array_extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ int main() {
// CHECK: arr is present
fprintf(stderr, "arr is present\n");

// CHECK: omptarget message: device mapping required by 'present' motion modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' motion modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] ([[#SIZE]] bytes)
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target data map(alloc : arr[SMALL])
{
#pragma omp target update CLAUSE(present : arr[LARGE])
Expand Down
10 changes: 5 additions & 5 deletions offload/test/mapping/present/zero_length_array_section.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ int main() {

// arr[0:0] doesn't create an actual mapping in the first directive.
//
// CHECK: omptarget message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] (0 bytes)
// CHECK: omptarget error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: omptarget error: Call to targetDataBegin failed, abort target.
// CHECK: omptarget error: Failed to process data before launching the kernel.
// CHECK: omptarget fatal error 1: failure of target construct while offloading is mandatory
// CHECK: message: device mapping required by 'present' map type modifier does not exist for host address 0x{{0*}}[[#HOST_ADDR]] (0 bytes)
// CHECK: error: Call to getTargetPointer returned null pointer ('present' map type modifier).
// CHECK: error: Call to targetDataBegin failed, abort target.
// CHECK: error: Failed to process data before launching the kernel.
// CHECK: fatal error 1: failure of target construct while offloading is mandatory
#pragma omp target data map(alloc : arr[0 : 0])
#pragma omp target map(present, alloc : arr[0 : 0])
;
Expand Down
Loading