diff options
author | Andy Wingo <wingo@pobox.com> | 2009-06-07 00:53:31 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-06-07 00:53:48 +0200 |
commit | c0ee32452f4babfc99526ed35d1f80d128d8658b (patch) | |
tree | 90a02f33aa08527277dd0fa52099206c26c76761 /libguile/vm-i-scheme.c | |
parent | 586cfdecfa4021e725287a02b57624418e597354 (diff) | |
download | guile-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.c | 2 |
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)); \ } \ |