[clang] [clang][Sema] Combine fallout warnings to just one warning (PR #127546)

via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 18 13:50:26 PST 2025


================
@@ -696,12 +661,12 @@ static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
   if (CD.checkDiagnostics(Diags, ReturnsVoid, HasNoReturn))
       return;
   SourceLocation LBrace = Body->getBeginLoc(), RBrace = Body->getEndLoc();
-  auto EmitDiag = [&](SourceLocation Loc, unsigned DiagID) {
+  auto EmitDiag = [&](SourceLocation Loc, unsigned DiagID, unsigned FunMode) {
----------------
Sirraide wrote:

Hmm, looking at how this has turned out, I think the entire lambda body can just be
```c++
    if (DiagID)
      S.Diag(Loc, DiagID) << CD.FunMode;
```
and then use `EmitDiag` instead of `S.Diag` everywhere in the `switch` statement below. That way we don’t have to think too hard about when a diag id might or might not be `0`. That also should allow us to remove the `IsCoroutine`-related checks again.

https://github.com/llvm/llvm-project/pull/127546


More information about the cfe-commits mailing list