brintos

brintos / llvm-project-archived public Read only

0
0
Text · 896 B · c6719d2 Raw
45 lines · c
1// RUN: %libomptarget-compile-generic2// RUN: env LIBOMPTARGET_DEBUG=1 %libomptarget-run-generic 2>&1 \3// RUN: | %fcheck-generic -check-prefix=DEBUG -check-prefix=CHECK4// REQUIRES: libomptarget-debug5 6#include <stdio.h>7 8struct S {9  int *p;10};11 12int main(void) {13  int A[10];14  struct S s1;15 16  s1.p = A;17 18// DEBUG: Update pointer ([[DEV_PTR:0x[^ ]+]]) -> {{\[}}[[DEV_OBJ_A:0x[^ ]+]]{{\]}}19#pragma omp target enter data map(alloc : s1.p[0 : 10])20 21// DEBUG-NOT: Update pointer ([[DEV_PTR]]) -> {{\[}}[[DEV_OBJ_A]]{{\]}}22#pragma omp target map(alloc : s1.p[0 : 10])23  {24    for (int i = 0; i < 10; ++i)25      s1.p[i] = i;26  }27 28#pragma omp target exit data map(from : s1.p[0 : 10])29 30  int fail_A = 0;31  for (int i = 0; i < 10; ++i) {32    if (A[i] != i) {33      fail_A = 1;34      break;35    }36  }37 38  // CHECK-NOT: Test A failed39  if (fail_A) {40    printf("Test A failed\n");41  }42 43  return fail_A;44}45