diff options
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -854,12 +854,17 @@ check_stack_overflow(int sig, const uintptr_t addr, const ucontext_t *ctx) const greg_t bp = mctx->gregs[REG_EBP]; # endif # elif defined __APPLE__ +# if __DARWIN_UNIX03 +# define MCTX_SS_REG(reg) __ss.__##reg +# else +# define MCTX_SS_REG(reg) ss.reg +# endif # if defined(__LP64__) - const uintptr_t sp = mctx->__ss.__rsp; - const uintptr_t bp = mctx->__ss.__rbp; + const uintptr_t sp = mctx->MCTX_SS_REG(rsp); + const uintptr_t bp = mctx->MCTX_SS_REG(rbp); # else - const uintptr_t sp = mctx->__ss.__esp; - const uintptr_t bp = mctx->__ss.__ebp; + const uintptr_t sp = mctx->MCTX_SS_REG(esp); + const uintptr_t bp = mctx->MCTX_SS_REG(ebp); # endif # elif defined __FreeBSD__ # if defined(__amd64__) |