~ chicken-core (chicken-5) 97e61d2b5697260654f1fbd3e1c7a3536ee78958


commit 97e61d2b5697260654f1fbd3e1c7a3536ee78958
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Wed May 6 20:13:38 2015 +0200
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Sun May 31 14:55:25 2015 +0200

    Small cleanup: remove unnecessary code in overflow detection in C_a_i_fixnum_plus

diff --git a/chicken.h b/chicken.h
index 4595a75f..12d32c4a 100644
--- a/chicken.h
+++ b/chicken.h
@@ -3060,17 +3060,12 @@ C_inline C_word C_a_i_fixnum_difference(C_word **ptr, C_word n, C_word x, C_word
 
 C_inline C_word C_a_i_fixnum_plus(C_word **ptr, C_word n, C_word x, C_word y)
 {
-  /* Exceptional situation: this will cause a real underflow */
-  if (x == C_fix(C_MOST_NEGATIVE_FIXNUM) && y == C_fix(C_MOST_NEGATIVE_FIXNUM)) {
-    return C_bignum1(ptr, 1, ((C_uword)-C_MOST_NEGATIVE_FIXNUM) << 1);
-  } else {
-    C_word z = C_unfix(x) + C_unfix(y);
+  C_word z = C_unfix(x) + C_unfix(y);
 
-    if(!C_fitsinfixnump(z)) {
-      return C_bignum1(ptr, z < 0, labs(z));
-    } else {
-      return C_fix(z);
-    }
+  if(!C_fitsinfixnump(z)) {
+    return C_bignum1(ptr, z < 0, labs(z));
+  } else {
+    return C_fix(z);
   }
 }
 
Trap