diff --git a/compiler/float-tran.lisp b/compiler/float-tran.lisp index ad6cecfc9f6946d551e7b0efffe962dd305deb1a..b3e487b6bd573def6fea38f72d88fdc158553b2c 100644 --- a/compiler/float-tran.lisp +++ b/compiler/float-tran.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.48 1997/12/14 14:10:27 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.49 1997/12/14 15:28:27 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -645,7 +645,10 @@ ;; return value of (OR FLOAT (COMPLEX FLOAT)) is ok as the default. (frob sqrt #'(lambda (lo hi) (declare (ignore hi)) - (and lo (> (bound-value lo) 0))) + (typecase lo + (cons (>= (car lo) 0)) + (rational (>= lo 0)) + (float (> lo 0)))) 0 nil) (frob asin #'(lambda (lo hi) (and lo hi @@ -884,7 +887,11 @@ (elfun-derive-type-simple arg #'log #'(lambda (lo hi) (declare (ignore hi)) - (and lo (> (bound-value lo) 0))) + (format t "*D1 ~s~%" lo) + (typecase lo + (cons (>= (car lo) 0)) + (rational (>= lo 0)) + (float (> lo 0)))) nil nil)) (defun log-derive-type-aux (x y same-arg)