xref: /llvm-project/offload/test/offloading/static_linking.c (revision 330d8983d25d08580fc1642fea48b2473f47a9da)
1*330d8983SJohannes Doerfert // RUN: %libomptarget-compile-generic -DLIBRARY -c -o %t.o
2*330d8983SJohannes Doerfert // RUN: ar rcs %t.a %t.o
3*330d8983SJohannes Doerfert // RUN: %libomptarget-compile-generic %t.a && %libomptarget-run-generic 2>&1 | %fcheck-generic
4*330d8983SJohannes Doerfert 
5*330d8983SJohannes Doerfert #ifdef LIBRARY
6*330d8983SJohannes Doerfert int x = 42;
7*330d8983SJohannes Doerfert #pragma omp declare target(x)
8*330d8983SJohannes Doerfert 
foo()9*330d8983SJohannes Doerfert int foo() {
10*330d8983SJohannes Doerfert   int value;
11*330d8983SJohannes Doerfert #pragma omp target map(from : value)
12*330d8983SJohannes Doerfert   value = x;
13*330d8983SJohannes Doerfert   return value;
14*330d8983SJohannes Doerfert }
15*330d8983SJohannes Doerfert #else
16*330d8983SJohannes Doerfert #include <stdio.h>
17*330d8983SJohannes Doerfert int foo();
18*330d8983SJohannes Doerfert 
main()19*330d8983SJohannes Doerfert int main() {
20*330d8983SJohannes Doerfert   int x = foo();
21*330d8983SJohannes Doerfert 
22*330d8983SJohannes Doerfert   // CHECK: PASS
23*330d8983SJohannes Doerfert   if (x == 42)
24*330d8983SJohannes Doerfert     printf("PASS\n");
25*330d8983SJohannes Doerfert }
26*330d8983SJohannes Doerfert #endif
27