[clang] [Clang] eliminate -Winvalid-noreturn false positive after throw + unreachable try/catch blocks (PR #175443)

Yanzuo Liu via cfe-commits cfe-commits at lists.llvm.org
Sun Jan 11 21:01:46 PST 2026


================
@@ -4740,11 +4740,20 @@ CFGBlock *CFGBuilder::VisitCXXTryStmt(CXXTryStmt *Terminator) {
 
   // Save the current "try" context.
   SaveAndRestore SaveTry(TryTerminatedBlock, NewTryTerminatedBlock);
-  cfg->addTryDispatchBlock(TryTerminatedBlock);
+  cfg->addTryDispatchBlock(NewTryTerminatedBlock);
 
   assert(Terminator->getTryBlock() && "try must contain a non-NULL body");
   Block = nullptr;
-  return addStmt(Terminator->getTryBlock());
+
+  CFGBlock *TryBodyEntry = addStmt(Terminator->getTryBlock());
+  if (TryBodyEntry) {
----------------
zwuis wrote:

`if (CFGBlock *TryBodyEntry = ...) {`

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


More information about the cfe-commits mailing list