summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-04-04 11:36:18 -0700
committerAndy Wingo <wingo@pobox.com>2009-04-04 11:36:18 -0700
commit2c0f99a28bc5a289bead58983da1510867162745 (patch)
tree9e37511bd8f0156f95671c004f6e22a86ea36757 /libguile/vm-i-system.c
parent6f36dbbe48506eccfc6a1df7d626dfe94ba3f696 (diff)
downloadguile-2c0f99a28bc5a289bead58983da1510867162745.tar.gz
fix nondeterminism in vm-i-system.c
* libguile/vm-i-system.c (br-if-eq, br-if-not-eq): Fix some nondeterminism caught by GCC 4.4.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index c1ea1c161..9280b189d 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -446,12 +446,14 @@ VM_DEFINE_INSTRUCTION (33, br_if_not, "br-if-not", 2, 0, 0)
VM_DEFINE_INSTRUCTION (34, br_if_eq, "br-if-eq", 2, 0, 0)
{
- BR (SCM_EQ_P (sp[0], sp--[1]));
+ sp--; /* underflow? */
+ BR (SCM_EQ_P (sp[0], sp[1]));
}
VM_DEFINE_INSTRUCTION (35, br_if_not_eq, "br-if-not-eq", 2, 0, 0)
{
- BR (!SCM_EQ_P (sp[0], sp--[1]));
+ sp--; /* underflow? */
+ BR (!SCM_EQ_P (sp[0], sp[1]));
}
VM_DEFINE_INSTRUCTION (36, br_if_null, "br-if-null", 2, 0, 0)