51 lines
654 B
C
51 lines
654 B
C
// PR target/35364
|
|
// { dg-do compile }
|
|
// { dg-options "-O2 -fopenmp" }
|
|
|
|
template <typename T>
|
|
struct E
|
|
{
|
|
E ();
|
|
~E ();
|
|
};
|
|
|
|
template <typename T, typename U>
|
|
struct C
|
|
{
|
|
C (const U &y) : u (y) {}
|
|
~C () {}
|
|
const U &u;
|
|
};
|
|
|
|
template <typename T, typename U = E<T> >
|
|
struct B : public C<T, U>
|
|
{
|
|
B (int x, const T &z = T (), const U &y = U ()) : C<T, U> (y) {}
|
|
~B () {}
|
|
};
|
|
|
|
void
|
|
foo ()
|
|
{
|
|
#pragma omp parallel
|
|
{
|
|
B<double> x (1);
|
|
}
|
|
#pragma omp for
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
B<int> x (i);
|
|
}
|
|
#pragma omp sections
|
|
{
|
|
#pragma omp section
|
|
{
|
|
B<int> x (6);
|
|
}
|
|
}
|
|
#pragma omp single
|
|
{
|
|
B<int> x (16);
|
|
}
|
|
}
|