================
@@ -4490,6 +4490,35 @@ def CIR_TryOp : CIR_Op<"try",[
let hasLLVMLowering = false;
}
+//===----------------------------------------------------------------------===//
+// Exception related: EhInflightOp
+//===----------------------------------------------------------------------===//
+
+def CIR_EhInflightOp : CIR_Op<"eh.inflight_exception"> {
+ let summary = "Materialize the catch clause formal parameter";
+ let description = [{
+ `cir.eh.inflight_exception` returns two values:
+ - `exception_ptr`: The exception pointer for the inflight exception
+ - `type_id`: pointer to the exception object
+ This operation is expected to be the first one basic blocks on the
+ exception path out of `cir.try_call` operations.
+
+ The `cleanup` attribute indicates that clean up code might run before the
+ values produced by this operation are used to gather exception information.
+ This helps CIR to pass down more accurate information for LLVM lowering
+ to landingpads.
+ }];
----------------
xlauko wrote:
Add examples of operation.
https://github.com/llvm/llvm-project/pull/165621
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits