diff --git a/collects/tests/mzscheme/optimize.ss b/collects/tests/mzscheme/optimize.ss index 983f35ef78..8873ea658a 100644 --- a/collects/tests/mzscheme/optimize.ss +++ b/collects/tests/mzscheme/optimize.ss @@ -229,6 +229,8 @@ (let ([v (make-X 3 def-val)]) (check-error-message set-name (eval `(lambda (x) (,set-name ,v -1 ,set-val)))) (check-error-message set-name (eval `(lambda (x) (,set-name ,v 3 ,set-val)))) + (unless (integer? set-val) + (check-error-message set-name (eval `(lambda (x) (,set-name ,v 0 12))))) (for-each (lambda (i) (tri-exact (void) set-name (lambda () v) i set-val (lambda () diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 074fa962c9..979175abf5 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -4405,6 +4405,7 @@ static int do_generate_common(mz_jit_state *jitter, void *_data) jit_stxr_p(JIT_V1, JIT_R0, JIT_R2); break; case 1: + (void)jit_bmsi_l(reffail, JIT_R2, 0x1); jit_ldxi_s(JIT_R2, JIT_R2, &((Scheme_Object *)0x0)->type); (void)jit_bnei_i(reffail, JIT_R2, scheme_char_type); jit_ldr_p(JIT_R2, JIT_RUNSTACK);