From 656bc62a73f204286c8dc21fb5ed418b9c39b2fb Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 9 Feb 2012 08:26:42 +0000 Subject: Remove the "unsupported" error for lambda expressions. It's annoying, and rapidly becoming untrue. llvm-svn: 150165 --- .../test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp') diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp index 48c00aa7c68..c6ed308d79a 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp @@ -2,9 +2,8 @@ // prvalue void prvalue() { - auto&& x = []()->void { }; // expected-error{{lambda expressions are not supported yet}} - auto& y = []()->void { }; // expected-error{{cannot bind to a temporary of type}} \ - // expected-error{{lambda expressions are not supported yet}} + auto&& x = []()->void { }; + auto& y = []()->void { }; // expected-error{{cannot bind to a temporary of type}} } namespace std { @@ -16,11 +15,9 @@ struct P { }; void unevaluated_operand(P &p, int i) { - int i2 = sizeof([]()->void{}()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} - const std::type_info &ti1 = typeid([&]() -> P& { return p; }()); // expected-error{{lambda expressions are not supported yet}} - const std::type_info &ti2 = typeid([&]() -> int { return i; }()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} + int i2 = sizeof([]()->void{}()); // expected-error{{lambda expression in an unevaluated operand}} + const std::type_info &ti1 = typeid([&]() -> P& { return p; }()); + const std::type_info &ti2 = typeid([&]() -> int { return i; }()); // expected-error{{lambda expression in an unevaluated operand}} } template @@ -36,13 +33,10 @@ struct Boom { void odr_used(P &p, Boom boom_int, Boom boom_float, Boom boom_double) { const std::type_info &ti1 - = typeid([=,&p]() -> P& { boom_int.tickle(); return p; }()); // expected-error{{lambda expressions are not supported yet}} \ - // expected-note{{in instantiation of member function 'Boom::Boom' requested here}} + = typeid([=,&p]() -> P& { boom_int.tickle(); return p; }()); // expected-note{{in instantiation of member function 'Boom::Boom' requested here}} const std::type_info &ti2 = typeid([=]() -> int { boom_float.tickle(); return 0; }()); // expected-error{{lambda expression in an unevaluated operand}} \ - // expected-error{{lambda expressions are not supported yet}} \ // expected-note{{in instantiation of member function 'Boom::Boom' requested here}} - auto foo = [=]() -> int { boom_double.tickle(); return 0; }; // expected-error{{lambda expressions are not supported yet}} \ - // expected-note{{in instantiation of member function 'Boom::Boom' requested here}} + auto foo = [=]() -> int { boom_double.tickle(); return 0; }; // expected-note{{in instantiation of member function 'Boom::Boom' requested here}} } -- cgit v1.2.3