diff --git a/src/lj_err.c b/src/lj_err.c index 283c3d18..a497ab11 100644 --- a/src/lj_err.c +++ b/src/lj_err.c @@ -329,12 +329,12 @@ static void err_unwind_win_jit(global_State *g, int errcode) memset(&hist, 0, sizeof(hist)); RtlCaptureContext(&ctx); while (1) { - uintptr_t frame, base, addr = ctx.CONTEXT_REG_PC; + DWORD64 frame, base, addr = ctx.CONTEXT_REG_PC; void *hdata; PRUNTIME_FUNCTION func = RtlLookupFunctionEntry(addr, &base, &hist); if (!func) { /* Found frame without .pdata: must be JIT-compiled code. */ ExitNo exitno; - uintptr_t stub = lj_trace_unwind(G2J(g), addr - sizeof(MCode), &exitno); + uintptr_t stub = lj_trace_unwind(G2J(g), (uintptr_t)(addr - sizeof(MCode)), &exitno); if (stub) { /* Jump to side exit to unwind the trace. */ ctx.CONTEXT_REG_PC = stub; G2J(g)->exitcode = errcode;