testsuite/libgomp.c/shared-2.c

Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <omp.h>
00003 
00004 extern void abort (void);
00005 
00006 void
00007 parallel (int a, int b)
00008 {
00009   int bad, LASTPRIV, LASTPRIV_SEC;
00010   int i;
00011 
00012   a = b = 3;
00013 
00014   bad = 0;
00015 
00016   #pragma omp parallel firstprivate (a,b) shared (bad) num_threads (5)
00017     {
00018       if (a != 3 || b != 3)
00019     bad = 1;
00020 
00021       #pragma omp for lastprivate (LASTPRIV)
00022       for (i = 0; i < 10; i++)
00023     LASTPRIV = i;
00024 
00025       #pragma omp sections lastprivate (LASTPRIV_SEC)
00026     {
00027       #pragma omp section
00028         { LASTPRIV_SEC = 3; }
00029 
00030       #pragma omp section
00031         { LASTPRIV_SEC = 42; }
00032     }
00033 
00034     }
00035 
00036   if (LASTPRIV != 9)
00037     abort ();
00038 
00039   if (LASTPRIV_SEC != 42)
00040     abort ();
00041 
00042   if (bad)
00043     abort ();
00044 }
00045 
00046 int main()
00047 {
00048   parallel (1, 2);
00049   return 0;
00050 }

Generated on Fri Apr 5 05:38:10 2013 for Libgomp by  doxygen 1.4.7