xref: /openbsd-src/gnu/gcc/libgomp/testsuite/libgomp.c/omp-loop03.c (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert extern void abort (void);
2*404b540aSrobert int a;
3*404b540aSrobert 
4*404b540aSrobert void
foo()5*404b540aSrobert foo ()
6*404b540aSrobert {
7*404b540aSrobert   int i;
8*404b540aSrobert   a = 30;
9*404b540aSrobert #pragma omp barrier
10*404b540aSrobert #pragma omp for lastprivate (a)
11*404b540aSrobert   for (i = 0; i < 1024; i++)
12*404b540aSrobert     {
13*404b540aSrobert       a = i;
14*404b540aSrobert     }
15*404b540aSrobert   if (a != 1023)
16*404b540aSrobert     abort ();
17*404b540aSrobert }
18*404b540aSrobert 
19*404b540aSrobert int
main(void)20*404b540aSrobert main (void)
21*404b540aSrobert {
22*404b540aSrobert #pragma omp parallel num_threads (64)
23*404b540aSrobert   foo ();
24*404b540aSrobert 
25*404b540aSrobert   return 0;
26*404b540aSrobert }
27