From dcee71903f8953dcdde8912be17052ae641158e9 Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Fri, 1 Dec 2006 19:12:46 +0000 Subject: [PATCH] (scm_srfi60_copy_bit): Should be long not int for fixnum bitshift, fixes 64-bit systems setting a bit between 32 and 63. Reported by Aaron M. Ucko, Debian bug 396119. --- srfi/srfi-60.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srfi/srfi-60.c b/srfi/srfi-60.c index 257b1387f..f631c6447 100644 --- a/srfi/srfi-60.c +++ b/srfi/srfi-60.c @@ -86,7 +86,7 @@ SCM_DEFINE (scm_srfi60_copy_bit, "copy-bit", 3, 0, 0, if (ii < SCM_LONG_BIT-1) { nn &= ~(1L << ii); /* zap bit at index */ - nn |= (bb << ii); /* insert desired bit */ + nn |= ((long) bb << ii); /* insert desired bit */ return scm_from_long (nn); } else