Visit a node in w.t.o
(&mut self, vertex: &WtoVertex)
| 660 | { |
| 661 | /// Visit a node in w.t.o |
| 662 | fn visit_vertex(&mut self, vertex: &WtoVertex) { |
| 663 | let bb = vertex.node(); |
| 664 | // If bb is the entry block (block ID is 0), initialize precondition as init state |
| 665 | let pre = if vertex.is_entry() { |
| 666 | self.init_state.clone() |
| 667 | } else { |
| 668 | // Otherwise, compute the disjunction of all the predecessors' post conditions |
| 669 | self.get_state_from_predecessors(bb) |
| 670 | }; |
| 671 | // self.set_pre(bb, pre.clone()); |
| 672 | |
| 673 | // Now analyze this node |
| 674 | self.analyze_basic_block(bb, pre); |
| 675 | } |
| 676 | |
| 677 | /// Visit a circle in w.t.o, the analysis will only proceed if the circle reaches its fixed-point |
| 678 | fn visit_circle(&mut self, circle: &WtoCircle) { |
nothing calls this directly
no test coverage detected