URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [libgomp/] [testsuite/] [libgomp.c/] [appendix-a/] [a.2.1.c] - Rev 384
Compare with Previous | Blame | View Log
/* { dg-do run } */ #include <stdio.h> #include <omp.h> extern void abort (void); int main () { int bad, x; x = 2; bad = 0; #pragma omp parallel num_threads(2) shared(x, bad) { if (omp_get_thread_num () == 0) { volatile int i; for (i = 0; i < 100000000; i++) x = 5; } else { /* Print 1: the following read of x has a race */ if (x != 2 && x != 5) bad = 1; } #pragma omp barrier if (omp_get_thread_num () == 0) { /* x must be 5 now. */ if (x != 5) bad = 1; } else { /* x must be 5 now. */ if (x != 5) bad = 1; } } if (bad) abort (); return 0; }