| // { dg-do compile } | |
| // { dg-require-effective-target fopenmp } | |
| // { dg-additional-options "-fno-var-tracking-assignments -fopenmp" } | |
| struct A | |
| { | |
| typedef int T; | |
| #pragma omp declare reduction (y : T : [&omp_out, &omp_in]() { omp_out += omp_in; return 0; }()) initializer (omp_priv = [omp_orig]() { return omp_orig; }()) | |
| static void foo (); | |
| }; | |
| void | |
| A::foo () | |
| { | |
| int r = 0, s = 0; | |
| #pragma omp parallel for reduction (y : r, s) | |
| for (int i = 0; i < 1; i++) | |
| { | |
| } | |
| } |