[PATCH] Force unwind frame with user-defined personality.

Jonathan Roelofs jonathan at codesourcery.com
Tue Jan 20 06:56:47 PST 2015


================
Comment at: src/Unwind/UnwindLevel1-gcc-ext.c:103
@@ +102,3 @@
+#if LIBCXXABI_ARM_EHABI
+static inline uint32_t readPREL31(const uint32_t *data) {
+  uint32_t base = (uintptr_t) data;
----------------
would be nice to re-use signExtendPrel31 instead.

================
Comment at: src/Unwind/UnwindLevel1-gcc-ext.c:148
@@ +147,3 @@
+      // location or availability of the unwind opcodes in the generic model,
+      // we have to use an undocumented API of personality functions.
+
----------------
which part specifically are you calling out as undocumented here? (would be useful info in the comment)

================
Comment at: src/Unwind/UnwindLevel1-gcc-ext.c:165
@@ +164,3 @@
+      const _Unwind_State _US_FORCE_UNWIND = 8u;
+      if (pr(_US_FORCE_UNWIND, &ex, context) != _URC_CONTINUE_UNWIND) {
+        return _URC_END_OF_STACK;
----------------
I think you want _US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND here.

http://reviews.llvm.org/D7032

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the cfe-commits mailing list