0.8.3.88:
authorAlexey Dejneka <adejneka@comail.ru>
Tue, 23 Sep 2003 06:51:39 +0000 (06:51 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Tue, 23 Sep 2003 06:51:39 +0000 (06:51 +0000)
        * Fix bug reported by Paul Dietz 2003-09-22: do not perform
          modular function coversion in deleted blocks.

BUGS
src/compiler/srctran.lisp
tests/compiler.impure-cload.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 788da3e..be258bd 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1256,5 +1256,44 @@ WORKAROUND:
   the control word; however, this clobbers any change the user might
   have made.
 
-292:
-  (fixed in 0.8.3.74)
+293:
+  From Paul Dietz:
+
+  (defparameter *f1*
+     (compile nil '(LAMBDA (C)
+                       (TRUNCATE (LOGORC1 -996082 C) -2))))
+
+  (defparameter *f2*
+     (compile nil '(LAMBDA (C) (DECLARE (NOTINLINE TRUNCATE))
+                       (TRUNCATE (LOGORC1 -996082 C) -2))))
+
+  (print (funcall *f1* 25337234)) ==> 13099002
+  (print (funcall *f2* 25337234)) ==> -13099001
+
+294:
+  From Paul Dietz:
+
+  * (funcall (compile nil `(lambda (c)
+                              (declare (optimize (speed 3))
+                                       (type (integer 23062188 149459656) c))
+                              (mod c (min -2 0))))
+              95019853)
+
+  debugger invoked on condition of type SB-INT:SIMPLE-PROGRAM-ERROR:
+     invalid number of arguments: 1
+
+  [...]
+
+  * (funcall (compile nil `(lambda (b)
+                              (declare (optimize (speed 3))
+                                       (type (integer 2 152044363) b))
+                               (rem b (min -16 0))))
+              108251912)
+
+  debugger invoked on condition of type SB-INT:SIMPLE-PROGRAM-ERROR:
+     invalid number of arguments: 1
+
+295:
+  From Paul Dietz:
+
+  (ash -1000000000000 -10000000000000000000) ==> 0  ;; should be -1
index a5ea013..56439e4 100644 (file)
              (setf (block-reoptimize (node-block node)) t)
              (setf (component-reoptimize (node-component node)) t))
            (cut-node (node &aux did-something)
-             (when (and (combination-p node)
+             (when (and (not (block-delete-p (node-block node)))
+                        (combination-p node)
                         (fun-info-p (basic-combination-kind node)))
                (let* ((fun-ref (lvar-use (combination-fun node)))
                       (fun-name (leaf-source-name (ref-leaf fun-ref)))
index 661c184..8e668fb 100644 (file)
       (device))))
 
 ;;;
-(defun foo ()
+(defun #:foo ()
   (labels ((foo (x)
              (return-from foo x)
              (block u
              (1+ x)))
     #'foo))
 
+(defun #:foo (b c)
+  (declare (type (integer 0 1) b) (optimize (speed 3)))
+  (flet ((%f2 () (lognor (block b5 138) c)))
+    (if (not (or (= -67399 b) b))
+        (deposit-field (%f2) (byte 11 8) -3)
+        c)))
+
 \f
 (sb-ext:quit :unix-status 104)
index 1a300b0..26304fa 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.3.87"
+"0.8.3.88"