d0fb20beb1
PR middle-end/35185 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed. (lower_omp_2): New function. (lower_omp_1, lower_omp): Rewritten. * testsuite/libgomp.c++/pr35185.C: New test. From-SVN: r133162
34 lines
339 B
C
34 lines
339 B
C
// PR middle-end/35185
|
|
// { dg-do run }
|
|
|
|
extern "C" void abort ();
|
|
|
|
struct S
|
|
{
|
|
S () : s (6) {}
|
|
~S () {}
|
|
int s;
|
|
};
|
|
|
|
__attribute__((noinline))
|
|
bool
|
|
bar (S s)
|
|
{
|
|
return s.s != 6;
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
S s;
|
|
int err = 0;
|
|
#pragma omp parallel shared (s)
|
|
{
|
|
if (bar (s))
|
|
#pragma omp atomic
|
|
err++;
|
|
}
|
|
if (err)
|
|
abort ();
|
|
}
|