From 5590f387f55d669bc2b839fd6586d0d81ca54fad Mon Sep 17 00:00:00 2001 From: dos-reis Date: Fri, 2 Dec 2011 14:22:26 +0000 Subject: * interp/g-opt.boot (modified?): Examine the rhs too. --- src/ChangeLog | 4 ++++ src/interp/g-opt.boot | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') 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 + + * interp/g-opt.boot (modified?): Examine the rhs too. + 2011-12-01 Gabriel Dos Reis * 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] -- cgit v1.2.3