xref: /openbsd-src/gnu/gcc/libgomp/testsuite/libgomp.c/omp-loop02.c (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert #include <omp.h>
2*404b540aSrobert 
3*404b540aSrobert /* Orphaned work sharing.  */
4*404b540aSrobert 
5*404b540aSrobert extern void abort (void);
6*404b540aSrobert 
7*404b540aSrobert #define N 10
8*404b540aSrobert 
parloop(int * a)9*404b540aSrobert void parloop (int *a)
10*404b540aSrobert {
11*404b540aSrobert   int i;
12*404b540aSrobert 
13*404b540aSrobert #pragma omp for
14*404b540aSrobert   for (i = 0; i < N; i++)
15*404b540aSrobert     a[i] = i + 3;
16*404b540aSrobert }
17*404b540aSrobert 
main()18*404b540aSrobert main()
19*404b540aSrobert {
20*404b540aSrobert   int i, a[N];
21*404b540aSrobert 
22*404b540aSrobert #pragma omp parallel shared(a)
23*404b540aSrobert   {
24*404b540aSrobert     parloop (a);
25*404b540aSrobert   }
26*404b540aSrobert 
27*404b540aSrobert   for (i = 0; i < N; i++)
28*404b540aSrobert     if (a[i] != i + 3)
29*404b540aSrobert       abort ();
30*404b540aSrobert 
31*404b540aSrobert   return 0;
32*404b540aSrobert }
33