https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106124

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
int q;
struct A
{
  typedef int T;
  #pragma omp declare reduction (x : T : omp_out += omp_in + [] (){ return q;
}()) initializer (omp_priv = [](){ return 0; }())
  static void foo ();
};
void bar (int &, int &);
void
A::foo ()
{
  int r = 0, s = 0;
  #pragma omp parallel reduction (x : r, s)
  bar (r, s);
}

ICEs too with the same options, but in a different spot.

Reply via email to