[PATCH] Fix _Unwind_Backtrace for libc++abi built with libgcc.
Jonathan Roelofs
jonathan at codesourcery.com
Tue Jan 20 07:03:28 PST 2015
LGTM.
================
Comment at: src/cxa_personality.cpp:1107
@@ +1106,3 @@
+ bool is_force_unwinding = static_cast<unsigned>(state) & _US_FORCE_UNWIND;
+ state = static_cast<_Unwind_State>(static_cast<unsigned>(state) & ~_US_FORCE_UNWIND);
+
----------------
rengolin wrote:
> Why do you need to clear the forced flag?
The _US_* things are a bitmask. Not clearing it means that the switch below won't match it.
================
Comment at: src/cxa_personality.cpp:1112
@@ -1106,1 +1111,3 @@
case _US_VIRTUAL_UNWIND_FRAME:
+ if (is_force_unwinding)
+ return continue_unwind(unwind_exception, context);
----------------
jroelofs wrote:
> can the state ever be set to just _US_FORCE_UNWIND? Also, continue_unwind() takes three parameters now... can you rebase this patch?
> can the state ever be set to just _US_FORCE_UNWIND?
Nevermind about that part.
http://reviews.llvm.org/D7031
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the cfe-commits
mailing list