- (type 'real))
- (let ((var (loop-make-var (gensym "LOOP-REPEAT-") form type)))
- (push `(when (minusp (decf ,var)) (go end-loop)) *loop-before-loop*)
- (push `(when (minusp (decf ,var)) (go end-loop)) *loop-after-body*)
+ (type 'integer))
+ (let ((var (loop-make-var (gensym "LOOP-REPEAT-") `(ceiling ,form) type)))
+ (push `(if (<= ,var 0) (go end-loop) (decf ,var)) *loop-before-loop*)
+ (push `(if (<= ,var 0) (go end-loop) (decf ,var)) *loop-after-body*)