aboutsummaryrefslogtreecommitdiff
path: root/src/interp
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 /src/interp
parentcd82f3461e43f3bbfa4acc8c6152322f774cad24 (diff)
downloadopen-axiom-5590f387f55d669bc2b839fd6586d0d81ca54fad.tar.gz
* interp/g-opt.boot (modified?): Examine the rhs too.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/g-opt.boot3
1 files changed, 2 insertions, 1 deletions
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]