Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Fix a bug in ObjC++ EH.
Throwing an Objective-C exception through a C++ catch block was broken. This was because the C++ code inserts a cleanup handler to make sure that it invokes `__cxa_end_catch`. Unwinding through this catchup transformed the Objective-C exception into a C++ one. This case should have been handled, except for two bugs: 1. A typo (`#ifdef` instead of `#ifndef`) meant that we were not extracting the Objective-C exception from the C++ object. 2. We were skipping everything except catchalls after the search phase, because we lose some information in the transformation. Fixes #49
- Loading branch information