1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
// PR c++/83204 // { dg-do compile { target c++11 } } int rand(); template<typename T> struct s { int count() { return rand(); } }; template<typename v> void f(s<v> a) { int const x = a.count(); int r = 0; auto l = [&](int& r) { for(int y = 0, yend = (x); y < yend; ++y) { r += y; } }; l(r); } template void f(s<float>);