~ chicken-core (chicken-5) af59953b2253c61b23a157bbacaab8a0702faa26


commit af59953b2253c61b23a157bbacaab8a0702faa26
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Fri Sep 25 18:20:13 2015 +0200
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Fri Sep 25 18:21:50 2015 +0200

    Restore unsafe fixnum modulo operator C macro.
    
    This is still used in the c-platform.scm unsafe rewrites for fxmod.
    Found by Alexander Shendi.

diff --git a/chicken.h b/chicken.h
index 4b573135..e53beefe 100644
--- a/chicken.h
+++ b/chicken.h
@@ -1206,6 +1206,8 @@ typedef void (C_ccall *C_proc)(C_word, C_word *) C_noret;
 #define C_u_fixnum_difference(n1, n2)   ((n1) - (n2) + C_FIXNUM_BIT)
 #define C_fixnum_difference(n1, n2)     (C_u_fixnum_difference(n1, n2) | C_FIXNUM_BIT)
 #define C_u_fixnum_divide(n1, n2)       (C_fix(C_unfix(n1) / C_unfix(n2)))
+/* XXX TODO OBSOLETE: These 4 can be removed after recompiling c-platform.scm */
+#define C_u_fixnum_modulo(n1, n2)       (C_fix(C_unfix(n1) % C_unfix(n2)))
 #define C_u_fixnum_and(n1, n2)          ((n1) & (n2))
 #define C_fixnum_and(n1, n2)            (C_u_fixnum_and(n1, n2) | C_FIXNUM_BIT)
 #define C_u_fixnum_or(n1, n2)           ((n1) | (n2))
Trap