From 19c0bd22a8f5e7cd76cf1435504c8eca342285ff Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 11 Mar 2014 20:12:32 -0400 Subject: [PATCH] Avoid side effects in argument to SCM_I_INUM. * libguile/vm-i-system.c (halt): Avoid side effects in argument to SCM_I_INUM. --- libguile/vm-i-system.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c index e54a99ba6..5057fb02b 100644 --- a/libguile/vm-i-system.c +++ b/libguile/vm-i-system.c @@ -32,8 +32,11 @@ VM_DEFINE_INSTRUCTION (0, nop, "nop", 0, 0, 0) VM_DEFINE_INSTRUCTION (1, halt, "halt", 0, 0, 0) { SCM ret; + SCM nvalues_scm; - nvalues = SCM_I_INUM (*sp--); + nvalues_scm = *sp--; /* SCM_I_INUM may evaluate its argument + more than once. */ + nvalues = SCM_I_INUM (nvalues_scm); NULLSTACK (1); if (nvalues == 1)