unw_step should return zero for _MIPS_SIM != _ABI64 when dwarf_step failed
(restore unw_step behaviour before
5eec9a2ecb9a93996d566bbfbcdbe006f64b7e16).
From b39e6bc050796ce068f10632bfea2be2302f058c Mon Sep 17 00:00:00 2001
From: Sergey Korolev <s.koro...@ndmsystems.com>
Date: Tue, 22 Jan 2019 23:56:38 +0300
Subject: [PATCH] mips: fix regression after "Handle Gstep according the
 N64/N32 ABI"

unw_step should return zero for _MIPS_SIM != _ABI64 when dwarf_step failed
(restore unw_step behaviour before 5eec9a2ecb9a93996d566bbfbcdbe006f64b7e16).
---
 src/mips/Gstep.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/mips/Gstep.c b/src/mips/Gstep.c
index f5a742e1..b967dd89 100644
--- a/src/mips/Gstep.c
+++ b/src/mips/Gstep.c
@@ -208,11 +208,14 @@ unw_step (unw_cursor_t *cursor)
   if (unlikely (ret == -UNW_ESTOPUNWIND))
     return ret;
 
-#if _MIPS_SIM == _ABI64
   if (unlikely (ret < 0))
     {
+#if _MIPS_SIM == _ABI64
       return _step_n64(c);
-    }
+#else
+      return ret;
 #endif
+    }
+
   return (c->dwarf.ip == 0) ? 0 : 1;
 }
-- 
2.11.0

_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to