rjmccall added a comment. In https://reviews.llvm.org/D47233#1129110, @smeenai wrote:
> Wrapping an Objective-C exception inside a C++ exception means dynamically > constructing a C++ exception object and traversing the class hierarchy of the > thrown Obj-C object to populate the catchable types array of the C++ > exception. Microsoft's C++ runtime will perform the appropriate catch type > comparisons, and this patch makes the compiler emit the right typeinfos into > the exception handling tables for all of that to work. > https://github.com/Microsoft/libobjc2/blob/f2e4c5ac4b3ac17f413a38bbc7ee1242f9efd0f7/msvc/eh_winobjc.cc#L116 > is how WinObjC does this wrapping, for example. I see. The idea of creating the type descriptors and mangled names ad-hoc for the catchable-types array is clever, and it's nice that the ABI is defined in a way that makes that work. (Expensive, but hey, it's the exceptions path.) Alright, now that I understand why this only matters for the catch side, I'll take a look at the patch. Repository: rC Clang https://reviews.llvm.org/D47233 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits