// RUN: %libomptarget-compile-generic -DA -c -o %t-a.o // RUN: %libomptarget-compile-generic -DB -c -o %t-b.o // RUN: %libomptarget-compile-generic %t-a.o %t-b.o && \ // RUN: %libomptarget-run-generic | %fcheck-generic #if defined(A) __attribute__((weak)) int x = 999; #pragma omp declare target to(x) #elif defined(B) int x = 42; #pragma omp declare target to(x) __attribute__((weak)) int y = 42; #pragma omp declare target to(y) #else #include extern int x; #pragma omp declare target to(x) extern int y; #pragma omp declare target to(y) int main() { x = 0; #pragma omp target update from(x) #pragma omp target update from(y) // CHECK: PASS if (x == 42 && y == 42) printf("PASS\n"); } #endif