diff --git a/clang/lib/CIR/Dialect/Transforms/MergeCleanups.cpp b/clang/lib/CIR/Dialect/Transforms/MergeCleanups.cpp index 822ce6f4bb2c..473b0e71ca96 100644 --- a/clang/lib/CIR/Dialect/Transforms/MergeCleanups.cpp +++ b/clang/lib/CIR/Dialect/Transforms/MergeCleanups.cpp @@ -84,15 +84,16 @@ struct MergeTrivialConditionalBranches : public OpRewritePattern { void rewrite(BrCondOp op, PatternRewriter &rewriter) const final { auto constOp = llvm::cast(op.getCond().getDefiningOp()); bool cond = constOp.getValue().cast().getValue(); + auto *destTrue = op.getDestTrue(), *destFalse = op.getDestFalse(); Block *block = op.getOperation()->getBlock(); rewriter.eraseOp(op); if (cond) { - rewriter.mergeBlocks(op.getDestTrue(), block); - rewriter.eraseBlock(op.getDestFalse()); + rewriter.mergeBlocks(destTrue, block); + rewriter.eraseBlock(destFalse); } else { - rewriter.mergeBlocks(op.getDestFalse(), block); - rewriter.eraseBlock(op.getDestTrue()); + rewriter.mergeBlocks(destFalse, block); + rewriter.eraseBlock(destTrue); } } };