| #include <omp.h> | |
| extern "C" void abort (void); | |
| int | |
| foo (void) | |
| { | |
| return 10; | |
| } | |
| int | |
| main () | |
| { | |
| int A = 0; | |
| #pragma omp parallel if (foo () > 10) shared (A) | |
| { | |
| A = omp_get_num_threads (); | |
| } | |
| if (A != 1) | |
| abort (); | |
| #pragma omp parallel if (foo () == 10) num_threads (3) shared (A) | |
| { | |
| A = omp_get_num_threads (); | |
| } | |
| if (A != 3) | |
| abort (); | |
| #pragma omp parallel if (foo () == 10) num_threads (foo ()) shared (A) | |
| { | |
| A = omp_get_num_threads (); | |
| } | |
| if (A != 10) | |
| abort (); | |
| return 0; | |
| } |