Fix build on sparc64-linux-gnu.
[official-gcc.git] / libgomp / testsuite / libgomp.c / appendix-a / a.2.1.c
blobf6ae4c7c5d0b083f5f770759d8a63d7d65065916
1 /* { dg-do run } */
3 #include <stdio.h>
4 #include <omp.h>
5 extern void abort (void);
6 int
7 main ()
9 int bad, x;
10 x = 2;
11 bad = 0;
12 #pragma omp parallel num_threads(2) shared(x, bad)
14 if (omp_get_thread_num () == 0)
16 volatile int i;
17 for (i = 0; i < 100000000; i++)
18 x = 5;
20 else
22 /* Print 1: the following read of x has a race */
23 if (x != 2 && x != 5)
24 bad = 1;
26 #pragma omp barrier
27 if (omp_get_thread_num () == 0)
29 /* x must be 5 now. */
30 if (x != 5)
31 bad = 1;
33 else
35 /* x must be 5 now. */
36 if (x != 5)
37 bad = 1;
41 if (bad)
42 abort ();
44 return 0;