This one still complains.
(defun foo (a) (let* ((l1 (blah a)) (l2 (blah a)) (foo (make-array l1 :element-type '(unsigned-byte 8) :initial-element 4)) (bar (make-array l1 :element-type '(unsigned-byte 8) :initial-element 0)) (hoge (make-array l2 :element-type '(unsigned-byte 8) :initial-element 2)) ;;; this one gets a "couldn't stack allocate" note: (piyo (make-array l2 :element-type '(unsigned-byte 8) :initial-element 0))) (declare ((mod 32752) l1) (fixnum l2)) (declare (dynamic-extent foo bar hoge piyo)) (do-something-with foo bar hoge piyo) (do-something-with foo bar hoge piyo) a))
This one still complains.
(defun foo (a)
:initial- element 4))
:initial- element 0))
:initial- element 2))
:initial- element 0)))
( fixnum l2)) something- with foo bar hoge piyo) something- with foo bar hoge piyo)
(let* ((l1 (blah a))
(l2 (blah a))
(foo (make-array l1 :element-type '(unsigned-byte 8)
(bar (make-array l1 :element-type '(unsigned-byte 8)
(hoge (make-array l2 :element-type '(unsigned-byte 8)
;;; this one gets a "couldn't stack allocate" note:
(piyo (make-array l2 :element-type '(unsigned-byte 8)
(declare ((mod 32752) l1)
(declare (dynamic-extent foo bar hoge piyo))
(do-
(do-
a))