// PR c++/58706 // { dg-do run } // { dg-options "-std=c++11" } template T foo () { T n = T (); #pragma omp parallel for reduction (+: n) for (T i = [](){ return 3; }(); i < 10; ++i) n++; return n; } template T bar () { T n = T (); #pragma omp parallel for reduction (+: n) for (T i = [](){ return 1; }() + [](){ return 4; }(); i < 10; ++i) n++; return n; } template T baz () { T n = T (); #pragma omp parallel for reduction (+: n) for (T i = T (); i < [](){ return 7; }() + [](){ return 11; }(); i += [](){ return 3; }() - [](){ return 1; }()) n++; return n; } int main () { if (foo () != 7 || foo () != 7) __builtin_abort (); if (bar () != 5 || bar () != 5) __builtin_abort (); if (baz () != 9 || baz () != 9) __builtin_abort (); }