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

Method isDisjointOrEqual

ir/pointer.cpp:734–743  ·  view source on GitHub ↗

This function assumes that both begin + len don't overflow

Source from the content-addressed store, hash-verified

732
733// This function assumes that both begin + len don't overflow
734void Pointer::isDisjointOrEqual(const expr &len1, const Pointer &ptr2,
735 const expr &len2) const {
736 auto off = getOffsetSizet();
737 auto off2 = ptr2.getOffsetSizet();
738 unsigned bits = off.bits();
739 m.state->addUB(getBid() != ptr2.getBid() ||
740 off == off2 ||
741 disjoint(off, len1.zextOrTrunc(bits), off2,
742 len2.zextOrTrunc(bits)));
743}
744
745expr Pointer::isBlockAlive() const {
746 // NULL block is dead

Callers 1

memcpyMethod · 0.80

Calls 6

getOffsetSizetMethod · 0.80
addUBMethod · 0.80
getBidMethod · 0.80
disjointFunction · 0.70
bitsMethod · 0.45
zextOrTruncMethod · 0.45

Tested by

no test coverage detected