From 1f57d7e20af001c92f7a42e75efe2b04d77cde55 Mon Sep 17 00:00:00 2001 From: Marius Gerbershagen Date: Sun, 21 Mar 2021 17:21:01 +0100 Subject: [PATCH] cmp: add type checks to boole compiler macro --- src/cmp/cmpnum.lsp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cmp/cmpnum.lsp b/src/cmp/cmpnum.lsp index 3c10d1ece..62c3938da 100644 --- a/src/cmp/cmpnum.lsp +++ b/src/cmp/cmpnum.lsp @@ -23,12 +23,12 @@ (define-compiler-macro boole (&whole form op-code op1 op2) (or (and (constantp op-code *cmp-env*) (case (ext:constant-form-value op-code *cmp-env*) - (#. boole-clr `(progn ,op1 ,op2 0)) - (#. boole-set `(progn ,op1 ,op2 -1)) - (#. boole-1 `(prog1 ,op1 ,op2)) - (#. boole-2 `(progn ,op1 ,op2)) - (#. boole-c1 `(prog1 (lognot ,op1) ,op2)) - (#. boole-c2 `(progn ,op1 (lognot ,op2))) + (#. boole-clr `(progn (checked-value integer ,op1) (checked-value integer ,op2) 0)) + (#. boole-set `(progn (checked-value integer ,op1) (checked-value integer ,op2) -1)) + (#. boole-1 `(prog1 (checked-value integer ,op1) (checked-value integer ,op2))) + (#. boole-2 `(progn (checked-value integer ,op1) (checked-value integer ,op2))) + (#. boole-c1 `(prog1 (lognot ,op1) (checked-value integer ,op2))) + (#. boole-c2 `(progn (checked-value integer ,op1) (lognot ,op2))) (#. boole-and `(logand ,op1 ,op2)) (#. boole-ior `(logior ,op1 ,op2)) (#. boole-xor `(logxor ,op1 ,op2))