AVR: Assert minimal required bit width of section_common::flags.
[gcc.git] / libgomp / testsuite / libgomp.c++ / baseptrs-9.C
blob95e7eebb0ed8e1be7ce26686b91cd942f95d5d10
1 /* { dg-do run } */
3 #include <stdlib.h>
4 #include <assert.h>
6 int main (void)
8   int **a_orig,i,j,n;
9   int **&a = a_orig;
11   j = 3;
12   n = 12;
14   a = (int **) calloc (32, sizeof (int *));
15   for (int x = 0; x < 32; x++)
16     a[x] = (int *) calloc (32, sizeof (int));
18   for (int i = 2; i < 32; i++)
19     {
20       #pragma omp target enter data map(a, a[2:30])
21       #pragma omp target enter data map(a[i][j:n])
22       #pragma omp target map(alloc: a)
23       {
24         for (int x = j; x < j + n; x++)
25           a[i][x]++;
26       }
27       #pragma omp target exit data map(a[i][j:n])
29       #pragma omp target data map(a, a[i][j:n])
30       {
31         #pragma omp target map(alloc: a)
32         {
33           for (int x = j; x < j + n; x++)
34             a[i][x]++;
35         }
36       }
37       #pragma omp target exit data map(a, a[2:30])
39       #pragma omp target data map(a, a[2:30])
40       {
41         #pragma omp target map(a[i][j:n])
42         {
43           for (int x = j; x < j + n; x++)
44             a[i][x]++;
45         }
46       }
47     }
49   for (int i = 0; i < 32; i++)
50     for (int j = 0; j < 32; j++)
51       if (i >= 2 && j >= 3 && j < 15)
52         assert (a[i][j] == 3);
53       else
54         assert (a[i][j] == 0);
56   return 0;