================
@@ -4490,6 +4490,50 @@ def CIR_TryOp : CIR_Op<"try",[
let hasLLVMLowering = false;
}
+//===----------------------------------------------------------------------===//
+// CatchParamOp
+//===----------------------------------------------------------------------===//
+
+def CIR_CatchParamKind : CIR_I32EnumAttr<
+ "CatchParamKind", "Designate limits for begin/end of catch param handling", [
+ I32EnumAttrCase<"Begin", 0, "begin">,
+ I32EnumAttrCase<"End", 1, "end">
+]>;
+
+def CIR_CatchParamOp : CIR_Op<"catch_param"> {
+ let summary = "Represents catch clause formal parameter";
+ let description = [{
+ The `cir.catch_param` can operate in two modes: within catch regions of
+ `cir.try` or anywhere else with the `begin` or `end` markers. The `begin`
+ version requires an exception pointer of `cir.ptr<!void>`.
+
+ Example:
+
+ ```mlir
+ %exception = cir.catch_param begin %exception_obj -> !cir.ptr<!s32i>
+
----------------
bcardosolopes wrote:
Remove this newline
https://github.com/llvm/llvm-project/pull/165110
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits