[clang] [CIR] Fix lost catch clauses on EH landing pads (PR #205638)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 25 08:55:25 PDT 2026


================
@@ -397,17 +474,40 @@ mlir::LogicalResult ItaniumEHLowering::lowerFunc(cir::FuncOp funcOp) {
 /// \p ehTokenMap is shared across all initiates in the function so that block
 /// arguments reachable from multiple sibling initiates are registered once.
 mlir::LogicalResult ItaniumEHLowering::lowerEhInitiate(
-    cir::EhInitiateOp initiateOp, EhTokenMap &ehTokenMap,
-    SmallVectorImpl<mlir::Operation *> &deadOps) {
+    cir::EhInitiateOp initiateOp,
+    llvm::ArrayRef<cir::EhDispatchOp> reachedDispatches, bool reachesCleanup,
+    EhTokenMap &ehTokenMap, SmallVectorImpl<mlir::Operation *> &deadOps) {
----------------
adams381 wrote:

Dropped `deadOps` from both; `lowerDispatch` now erases the dispatch directly, since each is lowered exactly once.

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


More information about the cfe-commits mailing list