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

Reply via email to