[clang] [clang] Clean up switch stack when transforming an invalid body (PR #211162)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 22 09:00:30 PDT 2026
================
@@ -8461,8 +8461,10 @@ TreeTransform<Derived>::TransformSwitchStmt(SwitchStmt *S) {
// Transform the body of the switch statement.
StmtResult Body = getDerived().TransformStmt(S->getBody());
+ // Finish the switch even on error to pop it from Sema's switch stack.
if (Body.isInvalid())
- return StmtError();
+ return getDerived().RebuildSwitchStmtBody(S->getSwitchLoc(), Switch.get(),
+ nullptr);
----------------
Sirraide wrote:
```suggestion
```
Just delete all of this and fall through to the call to `RebuildSwitchStmtBody()` below that we already have (`Body.get()` below will be nullptr in this case)
(github messed up the formatting of this suggestion a bit but you can probably figure it out)
https://github.com/llvm/llvm-project/pull/211162
More information about the cfe-commits
mailing list