about summary refs log tree commit diff stats
path: root/miasm2/analysis/data_flow.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2017-06-06 12:24:31 +0200
committerGitHub <noreply@github.com>2017-06-06 12:24:31 +0200
commit443a811aa92a31d3c2ae89937c5abb497bcc30ff (patch)
tree70937e30d5475f1c0b137ffc343e312323c50970 /miasm2/analysis/data_flow.py
parentb772f2d9c7aceb7d1ca87cdefd708d4f65d71623 (diff)
parentded504718e83ffcc63ef42cc27159ef998ed211b (diff)
downloadmiasm-443a811aa92a31d3c2ae89937c5abb497bcc30ff.tar.gz
miasm-443a811aa92a31d3c2ae89937c5abb497bcc30ff.zip
Merge pull request #522 from serpilliere/ir_ro
Ir ro
Diffstat (limited to 'miasm2/analysis/data_flow.py')
-rw-r--r--miasm2/analysis/data_flow.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm2/analysis/data_flow.py b/miasm2/analysis/data_flow.py
index 892a01c3..67768264 100644
--- a/miasm2/analysis/data_flow.py
+++ b/miasm2/analysis/data_flow.py
@@ -2,7 +2,7 @@
 
 from collections import namedtuple
 from miasm2.core.graph import DiGraph
-from miasm2.ir.ir import AssignBlock
+from miasm2.ir.ir import AssignBlock, IRBlock
 
 class ReachingDefinitions(dict):
     """
@@ -248,11 +248,13 @@ def dead_simp(ir_a):
     defuse = DiGraphDefUse(reaching_defs, deref_mem=True)
     useful = set(dead_simp_useful_instrs(defuse, reaching_defs))
     for block in ir_a.blocks.itervalues():
+        irs = []
         for idx, assignblk in enumerate(block.irs):
             new_assignblk = dict(assignblk)
             for lval in assignblk:
                 if InstrNode(block.label, idx, lval) not in useful:
                     del new_assignblk[lval]
                     modified = True
-            block.irs[idx] = AssignBlock(new_assignblk, assignblk.instr)
+            irs.append(AssignBlock(new_assignblk, assignblk.instr))
+        ir_a.blocks[block.label] = IRBlock(block.label, irs)
     return modified