1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* PR libgomp/42942 */
- /* { dg-do run } */
- /* { dg-additional-options "-Wno-deprecated-declarations" } */
- #include <omp.h>
- #include <stdlib.h>
- int
- main (void)
- {
- int e = 0;
- omp_set_dynamic (0);
- omp_set_nested (1);
- omp_set_max_active_levels (1);
- if (omp_get_max_active_levels () != 1)
- abort ();
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (!omp_in_parallel ()
- || omp_get_num_threads () != 2)
- e = 1;
- else
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (!omp_in_parallel ()
- || omp_get_num_threads () != 1)
- e = 1;
- if (e)
- abort ();
- omp_set_max_active_levels (0);
- if (omp_get_max_active_levels () != 0)
- abort ();
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (omp_in_parallel ()
- || omp_get_num_threads () != 1)
- e = 1;
- else
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (omp_in_parallel ()
- || omp_get_num_threads () != 1)
- e = 1;
- if (e)
- abort ();
- omp_set_max_active_levels (2);
- if (omp_get_max_active_levels () != 2)
- abort ();
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (!omp_in_parallel ()
- || omp_get_num_threads () != 2)
- e = 1;
- else
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (!omp_in_parallel ()
- || omp_get_num_threads () != 2)
- e = 1;
- else
- #pragma omp parallel num_threads(2) reduction(|:e)
- if (!omp_in_parallel ()
- || omp_get_num_threads () != 1)
- e = 1;
- if (e)
- abort ();
- return 0;
- }
|