andykaylor wrote:
> > eh_token = cir.eh.landingpad
>
> If i understood correctly cir.eh_token in Itanium will be lowered to a struct
> `{ %exception_ptr, %type_id }` and for windows will be an opaque ptr 🤔
The token is just an opaque value to establish a use-def chain. When the
operation is lowered for Itanium, the replacement will be as you describe,
though I wouldn't necessarily think of it in term of the token become the
struct. For Windows, the token roughly corresponds to the funclet token,
meaning it gets lowered to `none` for top-level landing pads. I haven't thought
through the mechanism we'll need for nested catch handlers, but as I mentioned
the funclet token will need to be attached to inoke/TryCall operations within
the catch region.
https://github.com/llvm/llvm-project/pull/172713
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits