[PATCH] D155342: [clang][JumpDiagnostics] ignore non-asm goto target scopes
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 17 14:14:41 PDT 2023
rjmccall added inline comments.
================
Comment at: clang/lib/Sema/JumpDiagnostics.cpp:361
+ if (!GS->isAsmGoto())
+ break;
// Remember both what scope a goto is in as well as the fact that we have
----------------
nickdesaulniers wrote:
> rjmccall wrote:
> > You can pull the `GCCAsmStmtClass` case right above this, make the cast unconditional (`if (!cast<GCCAsmStmt>(S)->isAsmGoto()) break;`), and then fall through into the GotoStmt case.
> I could hoist + use `[[fallthrough]]` but note that the case above `Stmt::SwitchStmtClass` also currently uses `[[fallthrough]]` here as well; so I would still need the `dyn_cast`.
>
> With that in mind, do you still prefer the hoisting? I don't have a preference, but wanted to triple check that with you.
Ah, right. Personally, I would probably put this common path in a helper function, but you could also just duplicate it since it's so small. This also seems like an acceptable use-case for `goto` if you can stomach that — with a good label, it should still be very readable.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155342/new/
https://reviews.llvm.org/D155342
More information about the cfe-commits
mailing list