Changed cellified SET! code to use a new name to maintain alpha-conversion.
authorStephen Adams <edu/mit/csail/zurich/adams>
Tue, 21 Feb 1995 06:20:05 +0000 (06:20 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Tue, 21 Feb 1995 06:20:05 +0000 (06:20 +0000)
v8/src/compiler/midend/assconv.scm

index 618a98e3fef6ef04d538a61c706de9b754db0dbd..5d24066d5693492921ffdbc45af14d16b2a82e45 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: assconv.scm,v 1.4 1995/01/22 01:06:01 adams Exp $
+$Id: assconv.scm,v 1.5 1995/02/21 06:20:05 adams Exp $
 
 Copyright (c) 1994 Massachusetts Institute of Technology
 
@@ -219,6 +219,9 @@ MIT in each case. |#
 (define (assconv/new-name prefix)
   (new-variable prefix))
 
+(define (assconv/rename variable)
+  (variable/rename variable))
+
 (define (assconv/new-cell-name prefix)
   (new-variable (string-append (symbol-name prefix) "-cell")))
 
@@ -378,21 +381,22 @@ MIT in each case. |#
         (QUOTE ,(assconv/binding/name binding))))
 
 (define (assconv/cell-assignment binding value)
-  (let ((cell-name  (assconv/binding/cell-name binding))
-       (value-name (assconv/binding/name binding)))
+  (let* ((cell-name  (assconv/binding/cell-name binding))
+        (value-name (assconv/binding/name binding))
+        (local-name (assconv/rename value-name)))
     #|
     ;; This returns the new value
-    (bind value-name value
+    (bind local-name value
          `(BEGIN
             (CALL (QUOTE ,%cell-set!)
                   (QUOTE #F)
                   (LOOKUP ,cell-name)
-                  (LOOKUP ,value-name)
+                  (LOOKUP ,local-name)
                   (QUOTE ,value-name))
-            (LOOKUP ,value-name)))
+            (LOOKUP ,local-name)))
     |#
     ;; This returns the old value
-    (bind value-name
+    (bind local-name
          `(CALL (QUOTE ,%cell-ref)
                 (QUOTE #F)
                 (LOOKUP ,cell-name)
@@ -403,7 +407,7 @@ MIT in each case. |#
                   (LOOKUP ,cell-name)
                   ,value
                   (QUOTE ,value-name))
-            (LOOKUP ,value-name)))))
+            (LOOKUP ,local-name)))))
 
 (define (assconv/cellify! binding)
   (let ((cell-name (assconv/new-cell-name (assconv/binding/name binding))))