diff --git a/compiler/pack.lisp b/compiler/pack.lisp index 9833fe7e1169f57a12e6d189056d4d2e4aae1550..faf5bcd7675ca130b104f8a20b81027266358c2d 100644 --- a/compiler/pack.lisp +++ b/compiler/pack.lisp @@ -187,7 +187,12 @@ (declare (type sc sc)) (let* ((sb (sc-sb sc)) (size (finite-sb-current-size sb)) - (inc (max (sb-size sb) (sc-element-size sc) (- needed-size size))) + (inc (max (sb-size sb) + (+ (sc-element-size sc) + (- (* (ceiling size (sc-alignment sc)) + (sc-alignment sc)) + size)) + (- needed-size size))) (new-size (+ size inc)) (conflicts (finite-sb-conflicts sb)) (block-size (if (zerop (length conflicts))