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

Logan Chien tzuhsiang.chien at gmail.com
Wed Jan 21 09:32:11 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;
----------------
jroelofs wrote:
> would be nice to re-use signExtendPrel31 instead.
Done.

================
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.
+
----------------
jroelofs wrote:
> which part specifically are you calling out as undocumented here? (would be useful info in the comment)
Revised.  Mentioned the undocumented flag `_US_FORCE_UNWIND` in the next revision.

================
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;
----------------
jroelofs wrote:
> I think you want _US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND here.
Done.

http://reviews.llvm.org/D7032

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






More information about the cfe-commits mailing list