Quuxplusone added inline comments.

================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:579
 def warn_maybe_falloff_nonvoid_function : Warning<
-  "control may reach end of non-void function">,
+  "not all control paths in this function return a value; non-void function 
must return a value">,
   InGroup<ReturnType>;
----------------
As long as we're messing with this wording: Does it actually help any human 
reader to distinguish "control paths" versus simply "paths"? And could we DRY 
it up by saying

> not all paths in this non-void {function,block} return a value

> this non-void {function,block} does not return a value

> not all paths in this coroutine return a value, and the promise type %0 does 
> not declare 'return_void()'

> this coroutine does not return a value, and the promise type %0 does not 
> declare 'return_void()'

I don't think the Coroutines warning needs to specifically call out "undefined 
behavior," unless it is trying to say that the code is IFNDR. //Of course// 
falling off the end of a function is UB if it ever actually happens at runtime; 
that's no different whether it's a coroutine or a regular function/block. The 
only reason for a wording difference in the Coroutines case is that the 
colloquial notion of a "(non-)void coroutine" (whose return type would be 
something like `task<void>`) is slightly less familiar than the colloquial 
notion of a "(non-)void function" (whose return type is literally `void`).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69762/new/

https://reviews.llvm.org/D69762



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to