mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-22 19:43:42 +01:00
Support building with older compilers.
Add a check for __builtin_unreachable.
This commit is contained in:
parent
ae3dd9417a
commit
10b064ffe9
4 changed files with 19 additions and 2 deletions
11
configure.ac
11
configure.ac
|
@ -285,6 +285,17 @@ if test x$have__builtin___clear_cache = xyes; then
|
|||
fi
|
||||
AC_MSG_RESULT([$have__builtin___clear_cache])
|
||||
|
||||
AC_MSG_CHECKING([for __builtin_unreachable])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]], [[__builtin_unreachable()]])],
|
||||
[have__builtin_unreachable=yes],
|
||||
[have__builtin_unreachable=no])
|
||||
if test x$have__builtin_unreachable = xyes; then
|
||||
AC_DEFINE([HAVE__BUILTIN_UNREACHABLE], [1],
|
||||
[Defined if __builtin_unreachable() is available])
|
||||
fi
|
||||
AC_MSG_RESULT([$have__builtin_unreachable])
|
||||
|
||||
AC_MSG_CHECKING([for __sync atomics])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]], [[
|
||||
|
|
|
@ -72,6 +72,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(HAVE__BUILTIN_UNREACHABLE)
|
||||
# define unreachable() __builtin_unreachable()
|
||||
#else
|
||||
# define unreachable() do { } while (1)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
# define UNW_DEBUG 1
|
||||
#else
|
||||
|
|
|
@ -96,7 +96,7 @@ arm_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
|||
: : "r" (c->sigcontext_sp), "r" (c->sigcontext_pc)
|
||||
);
|
||||
}
|
||||
__builtin_unreachable();
|
||||
unreachable();
|
||||
#else
|
||||
printf ("%s: implement me\n", __FUNCTION__);
|
||||
#endif
|
||||
|
|
|
@ -109,7 +109,7 @@ sh_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
|||
"r" (c->sigcontext_pc)
|
||||
);
|
||||
}
|
||||
__builtin_unreachable();
|
||||
unreachable();
|
||||
#endif
|
||||
return -UNW_EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue