diff options
20 files changed, 76 insertions, 75 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 88d73dc89b5..42df65217cb 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -575,21 +575,22 @@ def err_thread_non_global : Error<  def err_thread_unsupported : Error<    "thread-local storage is not supported for the current target">; +// FIXME: Combine fallout warnings to just one warning.  def warn_maybe_falloff_nonvoid_function : Warning< -  "control may reach end of non-void function">, +  "non-void function does not return a value in all control paths">,    InGroup<ReturnType>;  def warn_falloff_nonvoid_function : Warning< -  "control reaches end of non-void function">, +  "non-void function does not return a value">,    InGroup<ReturnType>;  def err_maybe_falloff_nonvoid_block : Error< -  "control may reach end of non-void block">; +  "non-void block does not return a value in all control paths">;  def err_falloff_nonvoid_block : Error< -  "control reaches end of non-void block">; +  "non-void block does not return a value">;  def warn_maybe_falloff_nonvoid_coroutine : Warning< -  "control may reach end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'">, +  "non-void coroutine does not return a value in all control paths">,    InGroup<ReturnType>;  def warn_falloff_nonvoid_coroutine : Warning< -  "control reaches end of coroutine; which is undefined behavior because the promise type %0 does not declare 'return_void()'">, +  "non-void coroutine does not return a value">,    InGroup<ReturnType>;  def warn_suggest_noreturn_function : Warning<    "%select{function|method}0 %1 could be declared with attribute 'noreturn'">, @@ -6858,10 +6859,10 @@ let CategoryName = "Lambda Issue" in {    def err_noreturn_lambda_has_return_expr : Error<      "lambda declared 'noreturn' should not return">;    def warn_maybe_falloff_nonvoid_lambda : Warning< -    "control may reach end of non-void lambda">, +    "non-void lambda does not return a value in all control paths">,      InGroup<ReturnType>;    def warn_falloff_nonvoid_lambda : Warning< -    "control reaches end of non-void lambda">, +    "non-void lambda does not return a value">,      InGroup<ReturnType>;    def err_access_lambda_capture : Error<      // The ERRORs represent other special members that aren't constructors, in diff --git a/clang/test/Analysis/const-method-call.cpp b/clang/test/Analysis/const-method-call.cpp index 902bdee2772..8e1fd3b125f 100644 --- a/clang/test/Analysis/const-method-call.cpp +++ b/clang/test/Analysis/const-method-call.cpp @@ -235,7 +235,7 @@ public:    void constMemberFunction() const;  }; -HasConstMemberFunction hasNoReturn() { } // expected-warning {{control reaches end of non-void function}} +HasConstMemberFunction hasNoReturn() { } // expected-warning {{non-void function does not return a value}}  void testUnknownWithConstMemberFunction() {    hasNoReturn().constMemberFunction(); diff --git a/clang/test/Analysis/structured_bindings.cpp b/clang/test/Analysis/structured_bindings.cpp index fcc976c4c3d..3e8ff1c2aa6 100644 --- a/clang/test/Analysis/structured_bindings.cpp +++ b/clang/test/Analysis/structured_bindings.cpp @@ -5,5 +5,5 @@ int foo() {      auto[a] = s{1}; // FIXME: proper modelling      if (a) {      } -} // expected-warning{{control reaches end of non-void function}} +} // expected-warning{{non-void function does not return a value}} 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 b8504d49065..2a99ff0ea44 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,7 @@  // An attribute-specifier-seq in a lambda-declarator appertains to the  // type of the corresponding function call operator.  void test_attributes() { -  auto nrl = [](int x) -> int { if (x > 0) return x; }; // expected-warning{{control may reach end of non-void lambda}} +  auto nrl = [](int x) -> int { if (x > 0) return x; }; // expected-warning{{on-void lambda does not return a value in all control paths}}    // FIXME: GCC accepts the [[gnu::noreturn]] attribute here.    auto nrl2 = []() [[gnu::noreturn]] { return; }; // expected-warning{{attribute 'noreturn' ignored}} 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 9dbe2e189f4..73714f1a947 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 lambda}} +  (void)[]() -> int { }; // expected-warning{{non-void lambda does not return a value}}  }  // Check that we get the right types of captured variables (the diff --git a/clang/test/Driver/cc-log-diagnostics.c b/clang/test/Driver/cc-log-diagnostics.c index 88c99f580de..069d2ad6292 100644 --- a/clang/test/Driver/cc-log-diagnostics.c +++ b/clang/test/Driver/cc-log-diagnostics.c @@ -29,7 +29,7 @@ int f0() {}  // CHECK:       <key>column</key>  // CHECK:       <integer>11</integer>  // CHECK:       <key>message</key> -// CHECK:       <string>control reaches end of non-void function</string> +// CHECK:       <string>non-void function does not return a value</string>  // CHECK:     </dict>  // CHECK:   </array>  // CHECK: </dict> diff --git a/clang/test/Frontend/absolute-paths.c b/clang/test/Frontend/absolute-paths.c index 478216294ae..07c81832ede 100644 --- a/clang/test/Frontend/absolute-paths.c +++ b/clang/test/Frontend/absolute-paths.c @@ -7,11 +7,11 @@  // directory in the path.  // NORMAL: SystemHeaderPrefix  // ABSOLUTE-NOT: SystemHeaderPrefix -// CHECK: warning: control reaches end of non-void function +// CHECK: warning: non-void function does not return a value  // For files which don't exist, just print the filename.  #line 123 "non-existant.c"  int g() {} -// NORMAL: non-existant.c:123:10: warning: control reaches end of non-void function -// ABSOLUTE: non-existant.c:123:10: warning: control reaches end of non-void function +// NORMAL: non-existant.c:123:10: warning: non-void function does not return a value +// ABSOLUTE: non-existant.c:123:10: warning: non-void function does not return a value diff --git a/clang/test/Index/warning-flags.c b/clang/test/Index/warning-flags.c index af789c0443d..2d9a1d99cac 100644 --- a/clang/test/Index/warning-flags.c +++ b/clang/test/Index/warning-flags.c @@ -9,10 +9,10 @@ int *bar(float *f) { return f; }  // RUN: c-index-test -test-load-source-reparse 5 all -w %s 2>&1 | FileCheck -check-prefix=NOWARNINGS %s  // RUN: c-index-test -test-load-source all -w -O4 %s 2>&1 | FileCheck -check-prefix=NOWARNINGS %s -// CHECK-BOTH-WARNINGS: warning: control reaches end of non-void function +// CHECK-BOTH-WARNINGS: warning: non-void function does not return a value  // CHECK-BOTH-WARNINGS: warning: incompatible pointer types returning 'float *' from a function with result type 'int *' -// CHECK-SECOND-WARNING-NOT:control reaches end of non-void +// CHECK-SECOND-WARNING-NOT:non-void function does not return a value  // CHECK-SECOND-WARNING: warning: incompatible pointer types returning 'float *' from a function with result type 'int *'  // NOWARNINGS-NOT: warning: diff --git a/clang/test/Misc/serialized-diags-stable.c b/clang/test/Misc/serialized-diags-stable.c index 4bd4c99af31..e05e3f01b6a 100644 --- a/clang/test/Misc/serialized-diags-stable.c +++ b/clang/test/Misc/serialized-diags-stable.c @@ -5,7 +5,7 @@  // RUN: c-index-test -read-diagnostics %S/Inputs/serialized-diags-stable.dia 2>&1 | FileCheck %s  int foo() { -  // CHECK: serialized-diags-stable.c:[[@LINE+2]]:1: warning: control reaches end of non-void function [-Wreturn-type] [Semantic Issue] +  // CHECK: serialized-diags-stable.c:[[@LINE+2]]:1: warning: non-void function does not return a value [-Wreturn-type] [Semantic Issue]    // CHECK-NEXT: Number FIXITs = 0  } diff --git a/clang/test/Modules/redecl-merge.m b/clang/test/Modules/redecl-merge.m index 59a19af7ff0..62b74f4014d 100644 --- a/clang/test/Modules/redecl-merge.m +++ b/clang/test/Modules/redecl-merge.m @@ -12,11 +12,11 @@ typedef struct my_struct_type *my_struct_ref;  int *call_eventually_noreturn(void) {    eventually_noreturn(); -} // expected-warning{{control reaches end of non-void function}} +} // expected-warning{{non-void function does not return a value}}  int *call_eventually_noreturn2(void) {    eventually_noreturn2(); -} // expected-warning{{control reaches end of non-void function}} +} // expected-warning{{non-void function does not return a value}}  @import redecl_merge_right; diff --git a/clang/test/PCH/late-parsed-instantiations.cpp b/clang/test/PCH/late-parsed-instantiations.cpp index f1fe8bb06a5..cbcc063e581 100644 --- a/clang/test/PCH/late-parsed-instantiations.cpp +++ b/clang/test/PCH/late-parsed-instantiations.cpp @@ -20,8 +20,8 @@ class ArrayBuffer {    char data() {      visit([](auto buffer) -> char { // expected-note {{in instantiation}}        buffer->data(); -    }); // expected-warning {{control reaches end of non-void lambda}} -  } // expected-warning {{control reaches end of non-void function}} +    }); // expected-warning {{non-void lambda does not return a value}} +  } // expected-warning {{non-void function does not return a value}}  };  #else diff --git a/clang/test/Sema/block-return-1.c b/clang/test/Sema/block-return-1.c index 631a2d443e1..ddb70e2ef64 100644 --- a/clang/test/Sema/block-return-1.c +++ b/clang/test/Sema/block-return-1.c @@ -2,5 +2,5 @@  int j;  void foo() { -  ^ (void) { if (j) return 1; }(); // expected-error {{control may reach end of non-void block}} +  ^ (void) { if (j) return 1; }(); // expected-error {{non-void block does not return a value in all control paths}}  } diff --git a/clang/test/Sema/block-return-3.c b/clang/test/Sema/block-return-3.c index cd942a7f304..7f955b76dba 100644 --- a/clang/test/Sema/block-return-3.c +++ b/clang/test/Sema/block-return-3.c @@ -1,5 +1,5 @@  // RUN: %clang_cc1 -fsyntax-only %s -verify -fblocks  void foo() { -  ^ int (void) { }(); // expected-error {{control reaches end of non-void block}} +  ^ int (void) { }(); // expected-error {{non-void block does not return a value}}  } diff --git a/clang/test/Sema/freemain.c b/clang/test/Sema/freemain.c index ff000c62cc7..83d7a4d56ea 100644 --- a/clang/test/Sema/freemain.c +++ b/clang/test/Sema/freemain.c @@ -6,4 +6,4 @@ void* allocate(long size);  void* main(void* context, long size) {    if (context) return allocate(size); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}} diff --git a/clang/test/Sema/return.c b/clang/test/Sema/return.c index 68c2251c463..632d3430c30 100644 --- a/clang/test/Sema/return.c +++ b/clang/test/Sema/return.c @@ -17,7 +17,7 @@ void test0() {  }  int test1() { -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test2() {    a: goto a; @@ -26,7 +26,7 @@ int test2() {  int test3() {    goto a;    a: ; -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  void halt() { @@ -54,11 +54,11 @@ int unknown_nohalt() {  int test7() {    unknown(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test8() {    (void)(1 + unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int halt3() __attribute__((noreturn)); @@ -68,11 +68,11 @@ int test9() {  int test10() {    (void)(unknown() || halt3()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int test11() {    (void)(unknown() && halt3()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int test12() {    (void)(halt3() || unknown()); @@ -84,27 +84,27 @@ int test13() {  int test14() {    (void)(1 || unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test15() {    (void)(0 || unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test16() {    (void)(0 && unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test17() {    (void)(1 && unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test18() {    (void)(unknown_nohalt() && halt3()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int test19() {    (void)(unknown_nohalt() && unknown()); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test20() {    int i; @@ -112,7 +112,7 @@ int test20() {      return 0;    else if (0)      return 2; -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int test21() {    int i; @@ -125,7 +125,7 @@ int test21() {  int test22() {    int i;    switch (i) default: ; -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int test23() {    int i; @@ -135,7 +135,7 @@ int test23() {    case 2:      return 2;    } -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int test24() {    int i; @@ -155,7 +155,7 @@ int test25() {  int test26() {    0 ? halt3() : unknown(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int j;  void (*fptr)() __attribute__((noreturn)); @@ -231,19 +231,19 @@ void test33() {  // Test that 'static inline' functions are only analyzed for CFG-based warnings  // when they are used. -static inline int si_has_missing_return() {} // expected-warning{{control reaches end of non-void function}} -static inline int si_has_missing_return_2() {}; // expected-warning{{control reaches end of non-void function}} +static inline int si_has_missing_return() {} // expected-warning{{non-void function does not return a value}} +static inline int si_has_missing_return_2() {}; // expected-warning{{non-void function does not return a value}}  static inline int si_forward();  static inline int si_has_missing_return_3(int x) {    if (x)     return si_has_missing_return_3(x+1); -} // expected-warning{{control may reach end of non-void function}} +} // expected-warning{{non-void function does not return a value in all control paths}}  int test_static_inline(int x) {    si_forward();    return x ? si_has_missing_return_2() : si_has_missing_return_3(x);  } -static inline int si_forward() {} // expected-warning{{control reaches end of non-void function}} +static inline int si_forward() {} // expected-warning{{non-void function does not return a value}}  // Test warnings on ignored qualifiers on return types.  const int ignored_c_quals(); // expected-warning{{'const' type qualifier on return type has no effect}} @@ -319,7 +319,7 @@ int PR19074_positive(int x) {    default:      break;    } -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  // sizeof(long) test.  int sizeof_long() { @@ -338,4 +338,4 @@ int return_statement_expression() {      });    else      return 0; -} // no-warning (used to be "control may reach end of non-void function") +} // no-warning (used to be "non-void function does not return a value in all control paths") diff --git a/clang/test/SemaCXX/attr-noreturn.cpp b/clang/test/SemaCXX/attr-noreturn.cpp index 5e7875f0834..72487bbed55 100644 --- a/clang/test/SemaCXX/attr-noreturn.cpp +++ b/clang/test/SemaCXX/attr-noreturn.cpp @@ -10,7 +10,7 @@ namespace test5 {    int &test1() {      a.nofail(); -  } // expected-warning {{control reaches end of non-void function}} +  } // expected-warning {{non-void function does not return a value}}    int &test2() {      a.fail(); diff --git a/clang/test/SemaCXX/coreturn.cpp b/clang/test/SemaCXX/coreturn.cpp index 7265d7c19c2..4d8bfa11d83 100644 --- a/clang/test/SemaCXX/coreturn.cpp +++ b/clang/test/SemaCXX/coreturn.cpp @@ -88,12 +88,12 @@ float test1() { co_await a; }  int test2() {    co_await a; -} // expected-warning {{control reaches end of coroutine; which is undefined behavior because the promise type 'std::experimental::coroutine_traits<int>::promise_type' (aka 'promise_int') does not declare 'return_void()'}} +} // expected-warning {{non-void coroutine does not return a value}}  int test2a(bool b) {    if (b)      co_return 42; -} // expected-warning {{control may reach end of coroutine; which is undefined behavior because the promise type 'std::experimental::coroutine_traits<int, bool>::promise_type' (aka 'promise_int') does not declare 'return_void()'}} +} // expected-warning {{non-void coroutine does not return a value in all control paths}}  int test3() {    co_await a; @@ -107,12 +107,12 @@ int test4() {  void test5(int) {    co_await a; -} // expected-warning {{control reaches end of coroutine; which is undefined behavior because}} +} // expected-warning {{non-void coroutine does not return a value}}  void test6(int x) {    if (x)      co_return 42; -} // expected-warning {{control may reach end of coroutine; which is undefined behavior because}} +} // expected-warning {{non-void coroutine does not return a value in all control paths}}  void test7(int y) {    if (y) @@ -132,9 +132,9 @@ VoidTagReturnVoid test9(bool b) {  VoidTagReturnValue test10() {    co_await a; -} // expected-warning {{control reaches end of coroutine}} +} // expected-warning {{non-void coroutine does not return a value}}  VoidTagReturnValue test11(bool b) {    if (b)      co_return 42; -} // expected-warning {{control may reach end of coroutine}} +} // expected-warning {{non-void coroutine does not return a value in all control paths}} diff --git a/clang/test/SemaCXX/return-noreturn.cpp b/clang/test/SemaCXX/return-noreturn.cpp index cfeddffb664..b88e5a519d1 100644 --- a/clang/test/SemaCXX/return-noreturn.cpp +++ b/clang/test/SemaCXX/return-noreturn.cpp @@ -26,7 +26,7 @@ namespace abort_struct_complex_cfgs {    }    int f2_positive(int x) {      switch (x) { default: ; } -  } // expected-warning {{control reaches end of non-void function}} +  } // expected-warning {{non-void function does not return a value}}    int f3(int x) {      switch (x) { default: { pr6884_abort_struct(); } }    } @@ -46,7 +46,7 @@ namespace abort_struct_complex_cfgs {        pr6884_abort_struct *p = new pr6884_abort_struct();        delete p;      } -  } // expected-warning {{control reaches end of non-void function}} +  } // expected-warning {{non-void function does not return a value}}    // Test that these constructs work even when extraneous blocks are created    // before and after the switch due to implicit destructors. @@ -61,7 +61,7 @@ namespace abort_struct_complex_cfgs {    int g2_positive(int x) {      other o;      switch (x) { default: ; } -  } // expected-warning {{control reaches end of non-void function}} +  } // expected-warning {{non-void function does not return a value}}    int g3(int x) {      other o;      switch (x) { default: { pr6884_abort_struct(); } } @@ -140,7 +140,7 @@ template <PR9412_MatchType type> int PR9412_t() {      default:          break;    } -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  void PR9412_f() {      PR9412_t<PR9412_Exact>(); // expected-note {{in instantiation of function template specialization 'PR9412_t<PR9412_Exact>' requested here}} @@ -165,7 +165,7 @@ int testTernaryStaticallyConditionalNoretrunOnTrue() {  int testTernaryStaticallyConditionalRetrunOnTrue() {    true ? Return() : NoReturn(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int testTernaryStaticallyConditionalNoretrunOnFalse() {    false ? Return() : NoReturn(); @@ -173,23 +173,23 @@ int testTernaryStaticallyConditionalNoretrunOnFalse() {  int testTernaryStaticallyConditionalRetrunOnFalse() {    false ? NoReturn() : Return(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int testTernaryConditionalNoreturnTrueBranch(bool value) {    value ? (NoReturn() || NoReturn()) : Return(); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testTernaryConditionalNoreturnFalseBranch(bool value) {    value ? Return() : (NoReturn() || NoReturn()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testConditionallyExecutedComplexTernaryTrueBranch(bool value) {    value || (true ? NoReturn() : true); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testConditionallyExecutedComplexTernaryFalseBranch(bool value) {    value || (false ? true : NoReturn()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testStaticallyExecutedLogicalOrBranch() {    false || NoReturn(); @@ -201,19 +201,19 @@ int testStaticallyExecutedLogicalAndBranch() {  int testStaticallySkippedLogicalOrBranch() {    true || NoReturn(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int testStaticallySkppedLogicalAndBranch() {    false && NoReturn(); -} // expected-warning {{control reaches end of non-void function}} +} // expected-warning {{non-void function does not return a value}}  int testConditionallyExecutedComplexLogicalBranch(bool value) {    value || (true && NoReturn()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testConditionallyExecutedComplexLogicalBranch2(bool value) {    (true && value) || (true && NoReturn()); -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int testConditionallyExecutedComplexLogicalBranch3(bool value) {    (false && (Return() || true)) || (true && NoReturn()); @@ -236,7 +236,7 @@ namespace LambdaVsTemporaryDtor {    int bar() {      X work([](){ Fatal(); });      foo(); -  } // expected-warning {{control reaches end of non-void function}} +  } // expected-warning {{non-void function does not return a value}}    int baz() {      FatalCopy fc; @@ -250,12 +250,12 @@ namespace LambdaVsTemporaryDtor {  int functionTryBlock1(int s) try {    return 0;  } catch (...) { -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int functionTryBlock2(int s) try {  } catch (...) {    return 0; -} // expected-warning {{control may reach end of non-void function}} +} // expected-warning {{non-void function does not return a value in all control paths}}  int functionTryBlock3(int s) try {    return 0; diff --git a/clang/test/SemaCXX/warn-missing-noreturn.cpp b/clang/test/SemaCXX/warn-missing-noreturn.cpp index 8072ac6b824..618229af207 100644 --- a/clang/test/SemaCXX/warn-missing-noreturn.cpp +++ b/clang/test/SemaCXX/warn-missing-noreturn.cpp @@ -91,7 +91,7 @@ void rdar8875247_aux();  int rdar8875247_test() {    rdar8875247 f; -} // expected-warning{{control reaches end of non-void function}} +} // expected-warning{{non-void function does not return a value}}  struct rdar8875247_B {    rdar8875247_B(); diff --git a/clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp b/clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp index 412f0265a46..0e654768787 100644 --- a/clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp +++ b/clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp @@ -15,8 +15,8 @@ class ArrayBuffer {    char data() {      visit([](auto buffer) -> char { // expected-note {{in instantiation}}        buffer->data(); -    }); // expected-warning {{control reaches end of non-void lambda}} -  } // expected-warning {{control reaches end of non-void function}} +    }); // expected-warning {{non-void lambda does not return a value}} +  } // expected-warning {{non-void function does not return a value}}  };  // pr34185  | 

