diff options
| author | Camille Mougey <camille.mougey@cea.fr> | 2015-02-10 10:53:38 +0100 |
|---|---|---|
| committer | Camille Mougey <camille.mougey@cea.fr> | 2015-02-10 10:53:38 +0100 |
| commit | 388b74c92f518584e0351af894588d90a48624ce (patch) | |
| tree | cbbabcbbfa9b13903fd9b429d46b8e91fa98e633 /miasm2/expression/expression_helper.py | |
| parent | 33189681bf13f88a1e39383a86079fc001ec619d (diff) | |
| download | miasm-388b74c92f518584e0351af894588d90a48624ce.tar.gz miasm-388b74c92f518584e0351af894588d90a48624ce.zip | |
VariablesIdentifier: Handle corner cases (using var ident on already computed eq)
Diffstat (limited to 'miasm2/expression/expression_helper.py')
| -rw-r--r-- | miasm2/expression/expression_helper.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/miasm2/expression/expression_helper.py b/miasm2/expression/expression_helper.py index c94bc353..825cad60 100644 --- a/miasm2/expression/expression_helper.py +++ b/miasm2/expression/expression_helper.py @@ -257,9 +257,13 @@ class Variables_Identifier(object): ## Build initial needs for var_id, var_expr in self._vars.iteritems(): + ### Handle corner cases while using Variable Identifier on an + ### already computed equation needs[var_id] = [var_name for var_name in var_expr.get_r(mem_read=True) - if self.is_var_identifier(var_name)] + if self.is_var_identifier(var_name) and \ + var_name in todo and \ + var_name != var_id] ## Build order list while todo: @@ -271,7 +275,6 @@ class Variables_Identifier(object): # A dependency is not met all_met = False break - if not all_met: continue |