summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/expr/expr.prim/expr.prim.lambda
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda')
-rw-r--r--clang/test/CXX/expr/expr.prim/expr.prim.lambda/generic-lambda-unimplemented-1y.cpp8
-rw-r--r--clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp6
-rw-r--r--clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp2
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;
};
};
OpenPOWER on IntegriCloud