~ 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