1// { dg-do compile }
2// { dg-options "-fopenmp" }
3
4struct A { int i; A (); ~A (); };
5struct B { int i; };
6struct C { int i; mutable int j; C (); ~C (); };
7
8template <typename T> void bar (const T *);
9
10const A a;
11const C c;
12
13const A foo (const A d, const C e)
14{
15  const A f;
16  const B b = { 4 };
17  A g;
18  #pragma omp parallel default (none)
19    bar (&a);
20  #pragma omp parallel default (none)
21    bar (&b);
22  #pragma omp parallel default (none)	// { dg-error "enclosing parallel" }
23    bar (&c);				// { dg-error "not specified" }
24  #pragma omp parallel default (none)
25    bar (&d);
26  #pragma omp parallel default (none)	// { dg-error "enclosing parallel" }
27    bar (&e);				// { dg-error "not specified" }
28  #pragma omp parallel default (none)
29    bar (&f);
30  #pragma omp parallel default (none)	// { dg-error "enclosing parallel" }
31    bar (&g);				// { dg-error "not specified" }
32  return f;
33}
34