diff options
Diffstat (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda')
3 files changed, 9 insertions, 7 deletions
diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp index 92dd7ad1876..7f42c396ee2 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp @@ -1,24 +1,24 @@ // RUN: %clang_cc1 -fsyntax-only -std=c++1y %s -verify - +//expected-no-diagnostics namespace lambda_capturing { // FIXME: Once return type deduction is implemented for generic lambdas // this will need to be updated. void test() { int i = 10; { - auto L = [=](auto a) -> int { //expected-error{{unimplemented}} + auto L = [=](auto a) -> int { return i + a; }; L(3); } { - auto L = [i](auto a) -> int { //expected-error{{unimplemented}} + auto L = [i](auto a) -> int { return i + a; }; L(3); } { - auto L = [i = i](auto a) -> int { //expected-error{{unimplemented}} + auto L = [i=i](auto a) -> int { return i + a; }; L(3); diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp index 44656a37e31..d41c4507a85 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp @@ -14,10 +14,12 @@ struct P { virtual ~P();
};
-void unevaluated_operand(P &p, int i) {
+void unevaluated_operand(P &p, int i) { //expected-note{{declared here}}
// FIXME: this should only emit one error.
int i2 = sizeof([](auto a, auto b)->void{}(3, '4')); // expected-error{{lambda expression in an unevaluated operand}} \
// expected-error{{invalid application of 'sizeof'}}
const std::type_info &ti1 = typeid([](auto &a) -> P& { static P p; return p; }(i));
- const std::type_info &ti2 = typeid([](auto) -> int { return i; }(i)); // expected-error{{lambda expression in an unevaluated operand}}
+ const std::type_info &ti2 = typeid([](auto) -> int { return i; }(i)); // expected-error{{lambda expression in an unevaluated operand}}\
+ // expected-error{{cannot be implicitly captured}}\
+ // expected-note{{begins here}}
}
diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp index ba41cb47f59..c5d3bf6d1bc 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp @@ -112,7 +112,7 @@ void test2() { namespace nested_lambdas {
int test() {
auto L = [](auto a) {
- return [=](auto b) { //expected-error{{unimplemented}}
+ return [=](auto b) {
return a + b;
};
};
|