blob: a259a2830379b031ec9017f6b3d110c384ab852b [file]
// RUN: %libomptarget-compile-generic
// RUN: env LIBOMPTARGET_DEBUG=1 %libomptarget-run-generic 2>&1 \
// RUN: | %fcheck-generic -check-prefix=DEBUG -check-prefix=CHECK
// REQUIRES: libomptarget-debug
#include <stdio.h>
// Even if the "alloc" and "from" are encountered before the "to",
// there should be a data-transfer from host to device, as the
// ref-count goes from 0 to 1 at the entry of the target region.
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{{.*}})
// clang-format on
#pragma omp target map(alloc : x) map(from : x) map(to : x) map(alloc : x)
{
x = x + 111;
}
printf("After tgt: %d\n", x); // CHECK: After tgt: 222
}