33 lines
614 B
C
33 lines
614 B
C
/* Testing 'has_device_addr' clause with variable sized array. */
|
|
|
|
int
|
|
foo (int size)
|
|
{
|
|
int x[size];
|
|
|
|
#pragma omp target data map(x[:size]) use_device_addr(x)
|
|
#pragma omp target has_device_addr(x)
|
|
for (int i = 0; i < size; i++)
|
|
x[i] = i;
|
|
for (int i = 0; i < size; i++)
|
|
if (x[i] != i)
|
|
__builtin_abort ();
|
|
|
|
#pragma omp target data map(x) use_device_addr(x)
|
|
#pragma omp target has_device_addr(x[2:3])
|
|
for (int i = 0; i < size; i++)
|
|
x[i] = i;
|
|
for (int i = 0; i < size; i++)
|
|
if (x[i] != i)
|
|
__builtin_abort ();
|
|
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
foo (40);
|
|
|
|
return 0;
|
|
}
|