-;;; On the SPARC, until sbcl-0.7.7.20, there was a bug in array references
-;;; for small vector elements (spotted by Raymond Toy).
-(assert (= (funcall
- (lambda (rmdr)
- (declare (type (simple-array bit (*)) rmdr)
- (optimize (speed 3) (safety 0)))
- (aref rmdr 0))
- #*00000000000000000000000000000001000000000)
- 0))
+;;; On the SPARC, until sbcl-0.7.7.20, there was a bug in array
+;;; references for small vector elements (spotted by Raymond Toy); the
+;;; bug persisted on the PPC until sbcl-0.7.8.20.
+(let (vector)
+ (loop for i below 64
+ for list = (make-list 64 :initial-element 1)
+ do (setf (nth i list) 0)
+ do (setf vector (make-array 64 :element-type 'bit
+ :initial-contents list))
+ do (assert (= (funcall
+ (compile nil
+ `(lambda (rmdr)
+ (declare (type (simple-array bit (*)) rmdr)
+ (optimize (speed 3) (safety 0)))
+ (aref rmdr ,i)))
+ vector)
+ 0))))