emacs-diffs
[Top][All Lists]
Advanced

[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,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]