| 1488 | } |
| 1489 | |
| 1490 | void State::syncSEdataWithSrc(State &src) { |
| 1491 | assert(glbvar_bids.empty()); |
| 1492 | assert(src.isSource() && !isSource()); |
| 1493 | glbvar_bids = src.glbvar_bids; |
| 1494 | for (auto &[gv_name, data] : glbvar_bids) { |
| 1495 | data.second = false; |
| 1496 | } |
| 1497 | fn_call_data = std::move(src.fn_call_data); |
| 1498 | inaccessiblemem_bids = std::move(src.inaccessiblemem_bids); |
| 1499 | memory.syncWithSrc(src.returnMemory()); |
| 1500 | |
| 1501 | src_state = &src; |
| 1502 | for (auto &[bb, srcs] : src.predecessor_data) { |
| 1503 | OrExpr path; |
| 1504 | for (auto &[src, data] : srcs) { |
| 1505 | path.add(data.path); |
| 1506 | } |
| 1507 | src_bb_paths[std::move(path)()].emplace_back(bb); |
| 1508 | } |
| 1509 | } |
| 1510 | |
| 1511 | void State::mkAxioms(State &tgt) { |
| 1512 | assert(isSource() && !tgt.isSource()); |
no test coverage detected