]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libgomp/lib/contrib/gcc-4.3/libgomp/testsuite/libgomp.c++/shared-2.C
Inital import
[l4.git] / l4 / pkg / libgomp / lib / contrib / gcc-4.3 / libgomp / testsuite / libgomp.c++ / shared-2.C
1 extern "C" void abort (void);
2
3 void
4 parallel (int a, int b)
5 {
6   int bad, LASTPRIV, LASTPRIV_SEC;
7   int i;
8
9   a = b = 3;
10
11   bad = 0;
12
13   #pragma omp parallel firstprivate (a,b) shared (bad) num_threads (5)
14     {
15       if (a != 3 || b != 3)
16         bad = 1;
17
18       #pragma omp for lastprivate (LASTPRIV)
19       for (i = 0; i < 10; i++)
20         LASTPRIV = i;
21
22       #pragma omp sections lastprivate (LASTPRIV_SEC)
23         {
24           #pragma omp section
25             { LASTPRIV_SEC = 3; }
26
27           #pragma omp section
28             { LASTPRIV_SEC = 42; }
29         }
30
31     }
32
33   if (LASTPRIV != 9)
34     abort ();
35
36   if (LASTPRIV_SEC != 42)
37     abort ();
38
39   if (bad)
40     abort ();
41 }
42
43 int main()
44 {
45   parallel (1, 2);
46   return 0;
47 }