// Testcase for an extension to allow return type deduction when the lambda // contains more than just a single return-statement. // { dg-do run { target c++1y } } bool b; template T f (T t) { return [=] { auto i = t+1; if (b) return i+1; else return i+1; }(); } int main() { // Pointless, but well-formed. [] { return 1; return 2; }(); if (f(1) != 3) return 1; }