[clang] [CIR] Support reference type of non-record ptr in InitCatchParam (PR #195722)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Fri May 15 17:12:36 PDT 2026


================
@@ -621,18 +622,35 @@ ItaniumEHLowering::resolveCatchCopyThunk(cir::ConstructCatchParamOp op) {
 mlir::LogicalResult
 ItaniumEHLowering::lowerConstructCatchParam(cir::ConstructCatchParamOp op,
                                             mlir::Value exnPtr) {
+  mlir::Location loc = op.getLoc();
+  mlir::Value paramAddr = op.getParamAddr();
+  cir::PointerType paramAddrType =
+      mlir::cast<cir::PointerType>(paramAddr.getType());
+
+  if (op.getKind() == cir::InitCatchKind::Reference) {
+    assert(!MissingFeatures::winSizeOfUnwindException());
----------------
andykaylor wrote:

What does the `win` here mean?

In classic codegen this is implemented in TargetInfo, but I think it would be reasonable to implement it in this class based on the target triple.

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


More information about the cfe-commits mailing list