~ 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