Index: src/cxa_exception.hpp =================================================================== --- src/cxa_exception.hpp +++ src/cxa_exception.hpp @@ -28,6 +28,13 @@ void __setExceptionClass ( _Unwind_Exception*, uint64_t); bool __isOurExceptionClass(const _Unwind_Exception*); +#if defined(__arm__) && defined(__GNUC__) +// missing values from _Unwind_Reason_Code enum +#define _URC_FATAL_PHASE2_ERROR ((_Unwind_Reason_Code)2) +#define _URC_FATAL_PHASE1_ERROR ((_Unwind_Reason_Code)3) +#define _URC_NORMAL_STOP ((_Unwind_Reason_Code)4) +#endif + struct _LIBCXXABI_HIDDEN __cxa_exception { #if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI) // This is a new field to support C++ 0x exception_ptr. Index: src/cxa_personality.cpp =================================================================== --- src/cxa_personality.cpp +++ src/cxa_personality.cpp @@ -1109,7 +1109,7 @@ // Check the undocumented force unwinding behavior bool is_force_unwinding = state & _US_FORCE_UNWIND; - state &= ~_US_FORCE_UNWIND; + state = (_Unwind_State)(state & ~_US_FORCE_UNWIND); scan_results results; switch (state) {