| 278 | |
| 279 | #[derive(Default, Clone)] |
| 280 | pub struct EvalState { |
| 281 | /// Extra varnodes consider to be temporaries |
| 282 | extra_temps: HashSet<pcode::VarId>, |
| 283 | |
| 284 | /// Constant evaluator used for determinine which bits are statically known to be used/unused. |
| 285 | const_eval: ConstEval, |
| 286 | |
| 287 | /// Keeps track of all the expressions that load bits from memory. |
| 288 | loads: HashMap<OutputExprId, LoadMetadata>, |
| 289 | |
| 290 | /// A mapping from the output of a statement (indexed by ID in the const evaluation state) to |
| 291 | /// both direct and indirect uses of bits that originate from memory loads. |
| 292 | uses: HashMap<OutputExprId, HashMap<OutputExprId, Use>>, |
| 293 | |
| 294 | /// Address of the block we are evaluating (for debugging). |
| 295 | block: u64, |
| 296 | } |
| 297 | |
| 298 | impl EvalState { |
| 299 | fn reset(&mut self) { |
nothing calls this directly
no outgoing calls
no test coverage detected