;;; Perhaps we should have to prove that the denominator is nonzero before
;;; doing them? -- WHN 19990917
(macrolet ((def (name)
- `(deftransform ,name ((x y) ((constant-arg (integer 0 0)) integer)
+ `(deftransform ,name ((x y) ((integer 0 0) integer)
*)
"fold zero arg"
0)))
(def /))
(macrolet ((def (name)
- `(deftransform ,name ((x y) ((constant-arg (integer 0 0)) integer)
+ `(deftransform ,name ((x y) ((integer 0 0) integer)
*)
"fold zero arg"
'(values 0 0))))
(let ((x :good))
((lambda (&optional (y x))
(declare (special x)) y)))))))))
+
+;;; Bug from pfdietz's random tester: the compiler knew that IMAGPART of
+;;; a rational was zero, but didn't do the substitution, leading to a
+;;; crash in the ASH vop (since a shift of 57 wouldn't fit in the
+;;; machine's ASH instruction's immediate field) that the compiler
+;;; thought was legitimate.
+(compile 'nil
+ (LAMBDA (B)
+ (DECLARE (TYPE (INTEGER -2 14) B))
+ (DECLARE (IGNORABLE B))
+ (ASH (IMAGPART B) 57)))
\ No newline at end of file
;;; 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.9.2.5"
+"0.9.2.6"