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-04-20 12:58:40 +0200
committerGitHub <noreply@github.com>2017-04-20 12:58:40 +0200
commit4f5206dd8774a82ed2c864f4e6fe2d512f9d4408 (patch)
tree418429f7a3cdedf5efdf074126bc76dbd04f9657 /miasm2/analysis/data_flow.py
parentff981a11ef71960a239ec44295f06bb384124521 (diff)
parent4d511eab15845e519e5a8b0d9f742a550768b709 (diff)
downloadmiasm-4f5206dd8774a82ed2c864f4e6fe2d512f9d4408.tar.gz
miasm-4f5206dd8774a82ed2c864f4e6fe2d512f9d4408.zip
Merge pull request #528 from serpilliere/assignblock_ro
Assignblock ro
Diffstat (limited to 'miasm2/analysis/data_flow.py')
-rw-r--r--miasm2/analysis/data_flow.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/miasm2/analysis/data_flow.py b/miasm2/analysis/data_flow.py
index b9764daa..dc1bf6ae 100644
--- a/miasm2/analysis/data_flow.py
+++ b/miasm2/analysis/data_flow.py
@@ -2,6 +2,7 @@
 
 from collections import namedtuple
 from miasm2.core.graph import DiGraph
+from miasm2.ir.ir import AssignBlock
 
 class ReachingDefinitions(dict):
     """
@@ -247,6 +248,8 @@ def dead_simp(ir_a):
     useful = set(dead_simp_useful_instrs(defuse, reaching_defs))
     for block in ir_a.blocks.itervalues():
         for idx, assignblk in enumerate(block.irs):
-            for lval in assignblk.keys():
+            new_assignblk = dict(assignblk)
+            for lval in assignblk:
                 if InstrNode(block.label, idx, lval) not in useful:
-                    del assignblk[lval]
+                    del new_assignblk[lval]
+            block.irs[idx] = AssignBlock(new_assignblk, assignblk.instr)