MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / startLifetime

Method startLifetime

ir/memory.cpp:2236–2248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2234}
2235
2236void 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
2250void Memory::free(const expr &ptr, bool unconstrained) {
2251 assert(!memory_unused());

Callers 1

toSMTMethod · 0.80

Calls 11

memory_unusedFunction · 0.85
disjoint_local_blocksFunction · 0.85
store_bvFunction · 0.85
addUBMethod · 0.80
isLocalMethod · 0.80
addPreMethod · 0.80
getAddressMethod · 0.80
blockSizeAlignedMethod · 0.80
blockAlignmentMethod · 0.80
isBlockAliveMethod · 0.45
zextOrTruncMethod · 0.45

Tested by

no test coverage detected