void __attribute__((noinline, noclone)) | |
foo (int j, int n, int *a) | |
{ | |
int i; | |
#pragma omp target | |
#pragma omp teams | |
#pragma omp distribute parallel for shared(a) firstprivate(n) private(i) firstprivate(j) | |
for (i = j + 1; i < n; i++) | |
a[i] = i; | |
} | |
int main (int argc, char **argv) | |
{ | |
int n = 32; | |
int *a = __builtin_malloc (sizeof (int) * n); | |
int i, j = 4; | |
__builtin_memset (a, 0, sizeof (int) * n); | |
foo (j, n, a); | |
for (i = j + 1; i < n; i ++) | |
{ | |
if (a[i] != i) | |
__builtin_abort (); | |
} | |
return 0; | |
} |