7 Commits (35ac9bc072e652e8bac9cd501f94d3b089b8f9a2)

Author SHA1 Message Date
Frederik Seiffert 186847c8d0 Fix eh_win32_msvc.cc includes 6 years ago
David Chisnall 6c6c3e13aa Fix Windows build. 7 years ago
David Chisnall fa35aaf5ee [windows] Handle changes to clang's EH mangling
For compatibility with a Facebook internal project, clang now mangles
Objective-C types and C structures in the same way.  This is a terrible
idea, but it apparently doesn't break anything.
7 years ago
David Chisnall e67d09648d The stuff that said 'DO NOT COMMIT THIS'?
It turns out, I didn't mean to commit it!  Dead code that was just there
to simplify compiler bringup.
8 years ago
David Chisnall 6e52cbbbe8 Make SEH exception handling work on 32- and 64-bit Windows.
Also change the expected mangling to reflect in-progress Clang changes.
8 years ago
David Chisnall 934cd13a7a Initial pass at Windows support.
All tests now pass with the new ABI on x86-64, with the new ABI.  Some
of the code is ugly and other platforms are probably broken.
8 years ago
Dustin L. Howett f352f62423 Add a MSVC/VS2017-compatible objc_exception_{,re}throw
This implementation of objc_exception_throw constructs a
_CxxThrowException-compatible ThrowInfo based on the runtime type of the
passed-in exception. Everything pertaining to the exception is allocated
on the stack before the call and destroyed when/if the stack frame is
aborted.

The construction of ThrowInfo, CatchableTypes, and TypeDescriptors, as
well as mangling, is compatible with Clang/LLVM's MicrosoftCXXABI
exception generator.

This ties Objective-C exceptions on Windows to the C++ exception model,
which allows us to support (unboxed) foreign exceptions and C++ catch of
Objective-C types.

objc_exception_rethrow recycles MicrosoftCXXABI's rethrow.

Contributing-author: Jordan Saunders <jmsaunde@microsoft.com>
Contributing-author: Shayne Hiet-Block <shaynehi@microsoft.com>
8 years ago