00001 /* PR middle-end/36802 */ 00002 00003 extern void abort (void); 00004 00005 int 00006 foo (int k) 00007 { 00008 int i = 0; 00009 #pragma omp parallel 00010 #pragma omp single 00011 { 00012 if (!k) 00013 { 00014 int j; 00015 for (j = 0; j < 10; j++) 00016 #pragma omp task 00017 if (j == 4) 00018 i++; 00019 } 00020 else 00021 i++; 00022 } 00023 return i; 00024 } 00025 00026 int 00027 main (void) 00028 { 00029 if (foo (0) != 1) 00030 abort (); 00031 if (foo (1) != 1) 00032 abort (); 00033 return 0; 00034 }