From 16fc339e53bfc908dbcd73fc912d7d75aed7218c Mon Sep 17 00:00:00 2001 From: Fabrice Desclaux Date: Fri, 14 Apr 2017 13:32:59 +0200 Subject: Ir: make AssignBlock immutable --- miasm2/analysis/data_flow.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'miasm2/analysis/data_flow.py') diff --git a/miasm2/analysis/data_flow.py b/miasm2/analysis/data_flow.py index b9764daa..3c77fc40 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) -- cgit 1.4.1