summaryrefslogtreecommitdiff
path: root/libguile/vm-i-scheme.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-06-07 00:53:31 +0200
committerAndy Wingo <wingo@pobox.com>2009-06-07 00:53:48 +0200
commitc0ee32452f4babfc99526ed35d1f80d128d8658b (patch)
tree90a02f33aa08527277dd0fa52099206c26c76761 /libguile/vm-i-scheme.c
parent586cfdecfa4021e725287a02b57624418e597354 (diff)
downloadguile-c0ee32452f4babfc99526ed35d1f80d128d8658b.tar.gz
fix incorrect inlining of + when + is locally redefined
* libguile/vm-i-scheme.c (FUNC2): Use a signed value for the intermediate result here. Not sure what the effect is, though. * module/ice-9/psyntax.scm (chi-top): Toplevel definitions ensure that variables are defined in the current module. Fixes the specific case of guile-lib's md5.scm, which redefines + -- this code is needed so that we don't incorrectly open-code +. * module/language/tree-il/primitives.scm (resolve-primitives!): I think there were some cases in which vars and names would not resolve properly here. Fix those.
Diffstat (limited to 'libguile/vm-i-scheme.c')
-rw-r--r--libguile/vm-i-scheme.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
index 38dea32b9..3742135a6 100644
--- a/libguile/vm-i-scheme.c
+++ b/libguile/vm-i-scheme.c
@@ -197,7 +197,7 @@ VM_DEFINE_FUNCTION (99, ge, "ge?", 2)
ARGS2 (x, y); \
if (SCM_I_INUMP (x) && SCM_I_INUMP (y)) \
{ \
- scm_t_bits n = SCM_I_INUM (x) CFUNC SCM_I_INUM (y);\
+ scm_t_int64 n = SCM_I_INUM (x) CFUNC SCM_I_INUM (y);\
if (SCM_FIXABLE (n)) \
RETURN (SCM_I_MAKINUM (n)); \
} \