[flang-commits] [flang] [flang][fir] fix fir.if canonicalization pattern from #205353 (PR #205757)

Tom Eccles via flang-commits flang-commits at lists.llvm.org
Thu Jun 25 04:56:38 PDT 2026


================
@@ -5736,7 +5736,11 @@ struct FoldPresentAbsentIfOp : public mlir::OpRewritePattern<fir::IfOp> {
     auto elseResult = mlir::dyn_cast<fir::ResultOp>(elseBlock.getTerminator());
     if (!elseResult || elseResult.getNumOperands() != 1)
       return mlir::failure();
-    if (!elseResult.getOperand(0).getDefiningOp<fir::AbsentOp>())
+    auto absentOp = elseResult.getOperand(0).getDefiningOp<fir::AbsentOp>();
+    if (!absentOp)
+      return mlir::failure();
+    if (elseBlock.getOperations().size() == 2 &&
----------------
tblah wrote:

Why check for `== 2`?

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


More information about the flang-commits mailing list