1 /* { dg-skip-if "" { *-*-* } } */
2 /* Used by target-same-name-1.c */
3
4 static int local_link = 42;
5 #pragma omp declare target link(local_link)
6
7 int decl_a_link = 123;
8 #pragma omp declare target link(decl_a_link)
9
10 #pragma omp declare target
11 static int __attribute__ ((noinline,noclone))
12 foo ()
13 {
14 return 5;
15 }
16 #pragma omp end declare target
17
18 static int __attribute__ ((noinline,noclone))
19 bar ()
20 {
21 int i;
22 #pragma omp target map(from:i)
23 i = foo ();
24 return i;
25 }
26
27 int
28 one () {
29 return bar ();
30 }
31
32 int
33 one_get_inc2_local_link ()
34 {
35 int res, res2;
36 #pragma omp target map(from: res, res2)
37 {
38 res = local_link;
39 local_link += 2;
40 res2 = local_link;
41 }
42 if (res + 2 != res2)
43 __builtin_abort ();
44 return res;
45 }
46
47 int
48 one_get_inc3_link_a ()
49 {
50 int res, res2;
51 #pragma omp target map(from: res, res2)
52 {
53 res = decl_a_link;
54 decl_a_link += 3;
55 res2 = decl_a_link;
56 }
57 if (res + 3 != res2)
58 __builtin_abort ();
59 return res;
60 }