1// PR middle-end/29965
2// Test that OpenMP construct bodies which never return don't cause ICEs.
3// { dg-do compile }
4// { dg-options "-O2 -fopenmp" }
5
6extern void baz () __attribute__ ((noreturn));
7
8void
9foo1 ()
10{
11#pragma omp single
12  for (;;);
13}
14
15void
16bar1 ()
17{
18#pragma omp single
19  baz ();
20}
21
22void
23foo2 ()
24{
25#pragma omp master
26  for (;;);
27}
28
29void
30bar2 ()
31{
32#pragma omp master
33  baz ();
34}
35
36void
37foo3 ()
38{
39#pragma omp ordered
40  for (;;);
41}
42
43void
44bar3 ()
45{
46#pragma omp ordered
47  baz ();
48}
49
50void
51foo4 ()
52{
53#pragma omp critical
54  for (;;);
55}
56
57void
58bar4 ()
59{
60#pragma omp critical
61  baz ();
62}
63