~ 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