extern void abort (void); | |
int g; | |
#pragma omp declare target (g) | |
#pragma omp declare target | |
int | |
foo (void) | |
{ | |
static int s; | |
return ++s + g; | |
} | |
#pragma omp end declare target | |
int | |
bar (void) | |
{ | |
static int s; | |
#pragma omp declare target to (s) | |
return ++s; | |
} | |
#pragma omp declare target (bar) | |
int | |
main () | |
{ | |
int r; | |
#pragma omp target map(from:r) | |
{ | |
r = (foo () == 1) + (bar () == 1); | |
r += (foo () == 2) + (bar () == 2); | |
} | |
if (r != 4) | |
abort (); | |
return 0; | |
} |