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

Method isPoison

ir/memory.cpp:359–371  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357}
358
359expr Byte::isPoison() const {
360 if (!does_int_mem_access)
361 return does_ptr_mem_access ? !ptrNonpoison() : true;
362 if (isAsmMode())
363 return false;
364
365 expr np = nonptrNonpoison();
366 if (byte_has_ptr_bit() && bits_poison_per_byte == 1) {
367 assert(!np.isValid() || ptrNonpoison().eq(np == 1));
368 return np != 1;
369 }
370 return expr::mkIf(isPtr(), !ptrNonpoison(), np != expr::mkInt(-1, np));
371}
372
373expr Byte::nonPoison() const {
374 if (isAsmMode())

Callers 5

refinedMethod · 0.80
bytesToValueFunction · 0.80
mkNonlocalValAxiomsMethod · 0.80
printMethod · 0.80
toSMTMethod · 0.80

Calls 3

byte_has_ptr_bitFunction · 0.85
isValidMethod · 0.45
eqMethod · 0.45

Tested by

no test coverage detected