/* { dg-do run } */ | |
extern void abort (void); | |
void | |
foo (int *j) | |
{ | |
int i = 5; | |
int bar (void) { return i + 1; } | |
#pragma omp sections | |
{ | |
#pragma omp section | |
{ | |
if (bar () != 6) | |
#pragma omp atomic | |
++*j; | |
} | |
#pragma omp section | |
{ | |
if (bar () != 6) | |
#pragma omp atomic | |
++*j; | |
} | |
} | |
} | |
int | |
main (void) | |
{ | |
int j = 0; | |
#pragma omp parallel num_threads (2) | |
foo (&j); | |
if (j) | |
abort (); | |
return 0; | |
} | |