From: Andrea Corallo Date: Tue, 16 Feb 2021 20:49:32 +0000 (+0100) Subject: * Better long range check X-Git-Tag: emacs-28.0.90~2727^2~150 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=72e4a22391bcb5d4ef484eb1dd32a614dbdbfd7b;p=emacs.git * Better long range check * src/comp.c (emit_rvalue_from_emacs_uint) (emit_rvalue_from_emacs_int, emit_rvalue_from_lisp_word_tag) (emit_rvalue_from_lisp_word): Better long range check. --- diff --git a/src/comp.c b/src/comp.c index 0ab7ab600a4..ce9c387568a 100644 --- a/src/comp.c +++ b/src/comp.c @@ -1166,7 +1166,7 @@ emit_rvalue_from_unsigned_long_long (gcc_jit_type *type, unsigned long long n) static gcc_jit_rvalue * emit_rvalue_from_emacs_uint (EMACS_UINT val) { - if (val != (long) val) + if (val > LONG_MAX || val < LONG_MIN) return emit_rvalue_from_unsigned_long_long (comp.emacs_uint_type, val); else return gcc_jit_context_new_rvalue_from_long (comp.ctxt, @@ -1177,7 +1177,7 @@ emit_rvalue_from_emacs_uint (EMACS_UINT val) static gcc_jit_rvalue * emit_rvalue_from_emacs_int (EMACS_INT val) { - if (val != (long) val) + if (val > LONG_MAX || val < LONG_MIN) return emit_rvalue_from_long_long (comp.emacs_int_type, val); else return gcc_jit_context_new_rvalue_from_long (comp.ctxt, @@ -1187,7 +1187,7 @@ emit_rvalue_from_emacs_int (EMACS_INT val) static gcc_jit_rvalue * emit_rvalue_from_lisp_word_tag (Lisp_Word_tag val) { - if (val != (long) val) + if (val > LONG_MAX || val < LONG_MIN) return emit_rvalue_from_unsigned_long_long (comp.lisp_word_tag_type, val); else return gcc_jit_context_new_rvalue_from_long (comp.ctxt, @@ -1203,7 +1203,7 @@ emit_rvalue_from_lisp_word (Lisp_Word val) comp.lisp_word_type, val); #else - if (val != (long) val) + if (val > LONG_MAX || val < LONG_MIN) return emit_rvalue_from_unsigned_long_long (comp.lisp_word_type, val); else return gcc_jit_context_new_rvalue_from_long (comp.ctxt,