(&mut self)
| 68 | } |
| 69 | |
| 70 | pub fn execute(&mut self) -> eyre::Result<()> { |
| 71 | let entry = self.analy_mgr.get_entry_block()?; |
| 72 | self.handle_block_in(&entry)?; |
| 73 | self.process_block(&entry)?; |
| 74 | self.handle_block_out(&entry)?; |
| 75 | while !self.analy_mgr.worklist.empty() { |
| 76 | let block = self.analy_mgr.get_next_work(); |
| 77 | self.handle_block_in(&block)?; |
| 78 | self.process_block(&block)?; |
| 79 | self.handle_block_out(&block)? |
| 80 | } |
| 81 | Ok(()) |
| 82 | } |
| 83 | |
| 84 | fn handle_block_in(&mut self, block: &CFGBlock) -> Result<()> { |
| 85 | if self.analy_mgr.is_block_ready(block)? { |
no test coverage detected