aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-12-02 14:22:26 +0000
committerdos-reis <gdr@axiomatics.org>2011-12-02 14:22:26 +0000
commit5590f387f55d669bc2b839fd6586d0d81ca54fad (patch)
treeff8afeda3e783202a735a449158f154b430fef85
parentcd82f3461e43f3bbfa4acc8c6152322f774cad24 (diff)
downloadopen-axiom-5590f387f55d669bc2b839fd6586d0d81ca54fad.tar.gz
* interp/g-opt.boot (modified?): Examine the rhs too.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/interp/g-opt.boot3
2 files changed, 6 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 38917e91..02df4c38 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2011-12-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/g-opt.boot (modified?): Examine the rhs too.
+
2011-12-01 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/g-opt.boot (changeVariableDefinitionToStore): Handle SEQ
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 066e2097..24665e11 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -521,7 +521,8 @@ findVMFreeVars form ==
++ in `form'.
modified?(var,form) ==
atomic? form => false
- form is [op,var',:.] and op in '(%LET LETT SETQ %store) =>
+ form is [op,var',expr,:.] and op in '(%LET LETT SETQ %store) =>
+ modified?(var,expr) => true
symbol? var' => var' = var -- whole var is assigned
var' is [.,=var] -- only part of it is modified
or/[modified?(var,f) for f in form]