1#include <omp.h>
2#include <stdlib.h>
3
4int
5main ()
6{
7  int d_o = omp_get_dynamic ();
8  int n_o = omp_get_nested ();
9  omp_sched_t s_o;
10  int c_o;
11  omp_get_schedule (&s_o, &c_o);
12  int m_o = omp_get_max_threads ();
13  omp_set_dynamic (1);
14  omp_set_nested (1);
15  omp_set_schedule (omp_sched_static, 2);
16  omp_set_num_threads (4);
17  int d = omp_get_dynamic ();
18  int n = omp_get_nested ();
19  omp_sched_t s;
20  int c;
21  omp_get_schedule (&s, &c);
22  int m = omp_get_max_threads ();
23  if (!omp_is_initial_device ())
24    abort ();
25  #pragma omp target if (0)
26  {
27    omp_sched_t s_c;
28    int c_c;
29    omp_get_schedule (&s_c, &c_c);
30    if (d_o != omp_get_dynamic ()
31	|| n_o != omp_get_nested ()
32	|| s_o != s_c
33	|| c_o != c_c
34	|| m_o != omp_get_max_threads ())
35      abort ();
36    omp_set_dynamic (0);
37    omp_set_nested (0);
38    omp_set_schedule (omp_sched_dynamic, 4);
39    omp_set_num_threads (2);
40    if (!omp_is_initial_device ())
41      abort ();
42  }
43  if (!omp_is_initial_device ())
44    abort ();
45  omp_sched_t s_c;
46  int c_c;
47  omp_get_schedule (&s_c, &c_c);
48  if (d != omp_get_dynamic ()
49      || n != omp_get_nested ()
50      || s != s_c
51      || c != c_c
52      || m != omp_get_max_threads ())
53    abort ();
54  #pragma omp target if (0)
55  #pragma omp teams
56  {
57    omp_sched_t s_c;
58    int c_c;
59    omp_get_schedule (&s_c, &c_c);
60    if (d_o != omp_get_dynamic ()
61	|| n_o != omp_get_nested ()
62	|| s_o != s_c
63	|| c_o != c_c
64	|| m_o != omp_get_max_threads ())
65      abort ();
66    omp_set_dynamic (0);
67    omp_set_nested (0);
68    omp_set_schedule (omp_sched_dynamic, 4);
69    omp_set_num_threads (2);
70    if (!omp_is_initial_device ())
71      abort ();
72  }
73  if (!omp_is_initial_device ())
74    abort ();
75  omp_get_schedule (&s_c, &c_c);
76  if (d != omp_get_dynamic ()
77      || n != omp_get_nested ()
78      || s != s_c
79      || c != c_c
80      || m != omp_get_max_threads ())
81    abort ();
82  return 0;
83}
84