[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp 72e4a22 2/4: * Better long range check
From: |
Andrea Corallo |
Subject: |
feature/native-comp 72e4a22 2/4: * Better long range check |
Date: |
Tue, 16 Feb 2021 16:12:48 -0500 (EST) |
branch: feature/native-comp
commit 72e4a22391bcb5d4ef484eb1dd32a614dbdbfd7b
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
* 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.
---
src/comp.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/comp.c b/src/comp.c
index 0ab7ab6..ce9c387 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,