Date: Mon, 25 Sep 2017 23:50:10 +0000 (UTC) From: Ian Lepore <ian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r323998 - head/contrib/gcc/config/arm Message-ID: <201709252350.v8PNoAMS021280@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ian Date: Mon Sep 25 23:50:10 2017 New Revision: 323998 URL: https://svnweb.freebsd.org/changeset/base/323998 Log: Fix the return value from _Unwind_Backtrace() on arm. If unwinding stops due to hitting the end of the call chain, the return value is supposed to be _URC_END_OF_STACK; other values indicate internal errors. The return value from get_eit_entry() is now returned without translating it to _URC_FAILURE, so that callers can see _URC_END_OF_STACK when it happens. Modified: head/contrib/gcc/config/arm/unwind-arm.c Modified: head/contrib/gcc/config/arm/unwind-arm.c ============================================================================== --- head/contrib/gcc/config/arm/unwind-arm.c Mon Sep 25 23:24:41 2017 (r323997) +++ head/contrib/gcc/config/arm/unwind-arm.c Mon Sep 25 23:50:10 2017 (r323998) @@ -773,11 +773,8 @@ __gnu_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * do { /* Find the entry for this routine. */ - if (get_eit_entry (ucbp, saved_vrs.core.r[R_PC]) != _URC_OK) - { - code = _URC_FAILURE; + if ((code = get_eit_entry (ucbp, saved_vrs.core.r[R_PC])) != _URC_OK) break; - } /* The dwarf unwinder assumes the context structure holds things like the function and LSDA pointers. The ARM implementation
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709252350.v8PNoAMS021280>