| 2234 | } |
| 2235 | |
| 2236 | void Memory::startLifetime(const expr &ptr_local) { |
| 2237 | assert(!memory_unused()); |
| 2238 | Pointer p(*this, ptr_local); |
| 2239 | state->addUB(p.isLocal()); |
| 2240 | |
| 2241 | if (observesAddresses()) |
| 2242 | state->addPre(p.isBlockAlive() || |
| 2243 | disjoint_local_blocks(*this, p.getAddress(), |
| 2244 | p.blockSizeAligned().zextOrTrunc(bits_ptr_address), |
| 2245 | p.blockAlignment(), local_blk_addr)); |
| 2246 | |
| 2247 | store_bv(p, true, local_block_liveness, non_local_block_liveness, true); |
| 2248 | } |
| 2249 | |
| 2250 | void Memory::free(const expr &ptr, bool unconstrained) { |
| 2251 | assert(!memory_unused()); |
no test coverage detected