1*87a03625SMalcolm Parsons // RUN: %clang_cc1 -std=c++11 %s -Wunused -Wno-unused-lambda-capture -verify
2f0d49510SDouglas Gregor 
f2()3f0d49510SDouglas Gregor void f2() {
4f0d49510SDouglas Gregor   int i = 1;
5f0d49510SDouglas Gregor   void g1(int = ([i]{ return i; })()); // expected-error{{lambda expression in default argument cannot capture any entity}}
6f0d49510SDouglas Gregor   void g2(int = ([i]{ return 0; })()); // expected-error{{lambda expression in default argument cannot capture any entity}}
7f0d49510SDouglas Gregor   void g3(int = ([=]{ return i; })()); // expected-error{{lambda expression in default argument cannot capture any entity}}
8f0d49510SDouglas Gregor   void g4(int = ([=]{ return 0; })());
9f0d49510SDouglas Gregor   void g5(int = ([]{ return sizeof i; })());
10f0d49510SDouglas Gregor }
11680e9e01SDouglas Gregor 
12680e9e01SDouglas Gregor namespace lambda_in_default_args {
__anonef416f2e0602() 13680e9e01SDouglas Gregor   int f(int = [] () -> int { int n; return ++n; } ());
__anonef416f2e0702() 14680e9e01SDouglas Gregor   template<typename T> T g(T = [] () -> T { T n; return ++n; } ());
15680e9e01SDouglas Gregor   int k = f() + g<int>();
16680e9e01SDouglas Gregor }
17