mirror of git://gcc.gnu.org/git/gcc.git
56 lines
828 B
C
56 lines
828 B
C
// PR c++/108180
|
|
// { dg-do run }
|
|
|
|
struct A {
|
|
A () { ++a; }
|
|
A (A &&) = delete;
|
|
A (const A &) { ++a; }
|
|
A &operator= (const A &) = delete;
|
|
A &operator= (A &&) = delete;
|
|
~A () { --a; }
|
|
static int a;
|
|
};
|
|
int A::a = 0;
|
|
|
|
struct B {
|
|
A a;
|
|
template <int N>
|
|
int
|
|
foo ()
|
|
{
|
|
int res = 0;
|
|
#pragma omp parallel for if(false) firstprivate(a)
|
|
for (int i = 0; i < 64; ++i)
|
|
res += i;
|
|
return res;
|
|
}
|
|
int
|
|
bar ()
|
|
{
|
|
int res = 0;
|
|
#pragma omp parallel for if(false) firstprivate(a)
|
|
for (int i = 0; i < 64; ++i)
|
|
res += i;
|
|
return res;
|
|
}
|
|
};
|
|
|
|
int
|
|
main ()
|
|
{
|
|
{
|
|
B b;
|
|
if (b.foo<0> () != 2016)
|
|
__builtin_abort ();
|
|
}
|
|
if (A::a != 0)
|
|
__builtin_abort ();
|
|
{
|
|
B b;
|
|
if (b.bar () != 2016)
|
|
__builtin_abort ();
|
|
}
|
|
if (A::a != 0)
|
|
__builtin_abort ();
|
|
}
|