xbolva00 updated this revision to Diff 228514.
xbolva00 added a comment.
Fixed review comments.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69762/new/
https://reviews.llvm.org/D69762
Files:
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/test/Sema/block-return-1.c
clang/test/Sema/block-return-3.c
clang/test/Sema/freemain.c
clang/test/Sema/return.c
clang/test/SemaCXX/attr-noreturn.cpp
clang/test/SemaCXX/coreturn.cpp
clang/test/SemaCXX/return-noreturn.cpp
clang/test/SemaCXX/warn-missing-noreturn.cpp
clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp
Index: clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp
===================================================================
--- clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp
+++ clang/test/SemaTemplate/late-parsing-eager-instantiation.cpp
@@ -15,8 +15,8 @@
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
Index: clang/test/SemaCXX/warn-missing-noreturn.cpp
===================================================================
--- clang/test/SemaCXX/warn-missing-noreturn.cpp
+++ clang/test/SemaCXX/warn-missing-noreturn.cpp
@@ -91,7 +91,7 @@
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();
Index: clang/test/SemaCXX/return-noreturn.cpp
===================================================================
--- clang/test/SemaCXX/return-noreturn.cpp
+++ clang/test/SemaCXX/return-noreturn.cpp
@@ -26,7 +26,7 @@
}
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 @@
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 @@
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 @@
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 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 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 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 @@
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 @@
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;
Index: clang/test/SemaCXX/coreturn.cpp
===================================================================
--- clang/test/SemaCXX/coreturn.cpp
+++ clang/test/SemaCXX/coreturn.cpp
@@ -88,12 +88,12 @@
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 @@
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 @@
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}}
Index: clang/test/SemaCXX/attr-noreturn.cpp
===================================================================
--- clang/test/SemaCXX/attr-noreturn.cpp
+++ clang/test/SemaCXX/attr-noreturn.cpp
@@ -10,7 +10,7 @@
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();
Index: clang/test/Sema/return.c
===================================================================
--- clang/test/Sema/return.c
+++ clang/test/Sema/return.c
@@ -17,7 +17,7 @@
}
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 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 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 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 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 @@
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 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 @@
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 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 @@
// 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 @@
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 @@
});
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")
Index: clang/test/Sema/freemain.c
===================================================================
--- clang/test/Sema/freemain.c
+++ clang/test/Sema/freemain.c
@@ -6,4 +6,4 @@
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}}
Index: clang/test/Sema/block-return-3.c
===================================================================
--- clang/test/Sema/block-return-3.c
+++ 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}}
}
Index: clang/test/Sema/block-return-1.c
===================================================================
--- clang/test/Sema/block-return-1.c
+++ 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}}
}
Index: clang/include/clang/Basic/DiagnosticSemaKinds.td
===================================================================
--- clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -576,20 +576,20 @@
"thread-local storage is not supported for the current target">;
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 +6858,10 @@
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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits