1.0.16.33: UNION and NUNION work with :TEST-NOT again
[sbcl.git] / src / compiler / ir2tran.lisp
index ebc963c..f2c5381 100644 (file)
 (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)))
 \f
 ;;;; leaf reference
                (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)))
          (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)