~ chicken-core (chicken-5) 3a9e0f2e490af2be49b9c51be1c2de008af50af3
commit 3a9e0f2e490af2be49b9c51be1c2de008af50af3 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Oct 4 08:13:00 2011 +0200 Commit: Christian Kellermann <ckeen@pestilenz.org> CommitDate: Tue Oct 4 22:00:27 2011 +0200 Mark let-bound variables as inline-transient, if introduced during inlining. If this is not done, then subsequent optimization in the same pass will remove the bound variable if the binding has no side-effects Signed-off-by: Christian Kellermann <ckeen@pestilenz.org> diff --git a/support.scm b/support.scm index cb95c0d6..d2444b8f 100644 --- a/support.scm +++ b/support.scm @@ -673,6 +673,7 @@ (val1 (walk (first subs) rl)) (a (gensym v)) (rl2 (alist-cons v a rl)) ) + (put! db a 'inline-transient #t) (make-node 'let (list a) (list val1 (walk (second subs) rl2)))) ]Trap