X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=f2c53818fc39c60b1f8fd3dc8d15e15699c7dc47;hb=158f220d2e6b44e48806480d6498466b9fc7eb62;hp=ebc963c9c8e5ce3248e1b11681088ccf0fdb05d3;hpb=ec2e02db335d1545b3c18233bf440ca4160f780d;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index ebc963c..f2c5381 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -57,7 +57,10 @@ (defun emit-make-value-cell (node block value res) (event make-value-cell-event node) (let ((leaf (tn-leaf res))) - (vop make-value-cell node block value (and leaf (leaf-dynamic-extent leaf)) + (vop make-value-cell node block value + (and leaf (leaf-dynamic-extent leaf) + ;; FIXME: See bug 419 + (policy node (> stack-allocate-value-cells 1))) res))) ;;;; leaf reference @@ -1181,8 +1184,10 @@ (ir2-physenv-return-pc env)) #!+unwind-to-frame-and-call-vop - (when (and (policy fun (>= insert-debug-catch 2)) - (lambda-return fun)) + (when (and (lambda-allow-instrumenting fun) + (not (lambda-inline-expanded fun)) + (lambda-return fun) + (policy fun (>= insert-debug-catch 2))) (vop sb!vm::bind-sentinel node block)) (let ((lab (gen-label))) @@ -1211,7 +1216,9 @@ (return-pc (ir2-physenv-return-pc env)) (returns (tail-set-info (lambda-tail-set fun)))) #!+unwind-to-frame-and-call-vop - (when (policy fun (>= insert-debug-catch 2)) + (when (and (lambda-allow-instrumenting fun) + (not (lambda-inline-expanded fun)) + (policy fun (>= insert-debug-catch 2))) (vop sb!vm::unbind-sentinel node block)) (cond ((and (eq (return-info-kind returns) :fixed)