1/* { dg-do run } */ 2/* { dg-options "-O2" } */ 3 4extern void abort (void); 5 6void 7foo (int *j) 8{ 9 int i = 5; 10 int bar (void) { return i + 1; } 11#pragma omp sections 12 { 13 #pragma omp section 14 { 15 if (bar () != 6) 16 #pragma omp atomic 17 ++*j; 18 } 19 #pragma omp section 20 { 21 if (bar () != 6) 22 #pragma omp atomic 23 ++*j; 24 } 25 } 26} 27 28int 29main (void) 30{ 31 int j = 0; 32#pragma omp parallel num_threads (2) 33 foo (&j); 34 if (j) 35 abort (); 36 return 0; 37} 38 39