aheejin wrote:

@rjmccall 
> I don't know why the GNUStep runtime needs different ObjC and ObjC++ 
> personality functions. The ObjC++ personality has to support the complete 
> superset of exception clauses (a single call site can have handlers for both 
> C++ and ObjC exception types). It should therefore still be usable in either 
> pure ObjC or pure C++.
> 
> In theory, the ObjC++ personality needs to be able to distinguish ObjC and 
> C++ exceptions, so using it instead of a single-language personality could 
> require a less compact LSDA format. In practice, they use the exact same 
> format, and AFAIK the exception types are always distinguished in a more 
> subtle way. I don't know the exact details of what GNUStep does, but the 
> Apple ObjC runtime just provides a v-table for ObjC exception RTTI objects 
> that implements the private exception-matching virtual methods on type_info 
> differently. (I'm not even sure LLVM _supports_ emitting a different LSDA 
> format for different personalities.)

If ObjC can share libc++abi (with little `#ifdef`s here and there I suppose) it 
will be simpler and we don't need to change much (if at all) in WasmEHPrepare.

https://github.com/llvm/llvm-project/pull/169043
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to