diff options
Diffstat (limited to 'clang/test/CXX/expr/expr.prim/expr.prim.lambda')
3 files changed, 5 insertions, 3 deletions
diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp index a67b5c01fd5..68460f0354b 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp @@ -3,7 +3,9 @@ // An attribute-specifier-seq in a lambda-declarator appertains to the // type of the corresponding function call operator. void test_attributes() { - auto nrl = []() [[noreturn]] {}; // expected-warning{{function declared 'noreturn' should not return}} + auto nrl = [](int x) -> int { if (x > 0) return x; }; // expected-warning{{control may reach end of non-void lambda}} + + auto nrl2 = []() [[noreturn]] { return; }; // expected-error{{lambda declared 'noreturn' should not return}} } template<typename T> diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp index 627071343e0..9dbe2e189f4 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp @@ -2,7 +2,7 @@ // Check that analysis-based warnings work in lambda bodies. void analysis_based_warnings() { - (void)[]() -> int { }; // expected-warning{{control reaches end of non-void function}} + (void)[]() -> int { }; // expected-warning{{control reaches end of non-void lambda}} } // Check that we get the right types of captured variables (the diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp index baa29ea9443..14491cc3b20 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp @@ -2,7 +2,7 @@ template<typename T> void test_attributes() { - auto nrl = []() [[noreturn]] {}; // expected-warning{{function declared 'noreturn' should not return}} + auto nrl = []() [[noreturn]] {}; // expected-error{{lambda declared 'noreturn' should not return}} } template void test_attributes<int>(); // expected-note{{in instantiation of function}} |