Predator
[unstable] git snapshot
|
list segment based abstraction/concretization of heap objects More...
Go to the source code of this file.
Typedefs | |
typedef std::list< SymHeap > | TSymHeapList |
container for symbolic heaps scheduled for processing. |
Functions | |
void | concretizeObj (SymHeap &sh, TSymHeapList &dst, TObjId obj, ETargetSpecifier ts, TObjSet *leakObjs=0) |
concretize the given abstract object. | |
void | spliceOutListSegment (SymHeap &sh, TObjId seg, TObjSet *leakObjs) |
splice out a possibly empty list segment | |
void | dlSegReplaceByConcrete (SymHeap &sh, TObjId seg) |
replace a DLS by a single concrete object | |
void | abstractIfNeeded (SymHeap &sh) |
analyze the given symbolic heap and consider abstraction of some shapes that we know ho to rewrite to their more abstract way of existence | |
void | debugSymAbstract (bool enable) |
enable/disable debugging of symabstract |
list segment based abstraction/concretization of heap objects
Definition in file symabstract.hh.
typedef std::list<SymHeap> TSymHeapList |
container for symbolic heaps scheduled for processing.
It's feed by concretizeObj() and consumed by SymExecCore::concretizeLoop().
Definition at line 38 of file symabstract.hh.
void abstractIfNeeded | ( | SymHeap & | sh | ) |
analyze the given symbolic heap and consider abstraction of some shapes that we know ho to rewrite to their more abstract way of existence
sh | an instance of symbolic heap, used in read/write mode |
void concretizeObj | ( | SymHeap & | sh, |
TSymHeapList & | dst, | ||
TObjId | obj, | ||
ETargetSpecifier | ts, | ||
TObjSet * | leakObjs = 0 |
||
) |
concretize the given abstract object.
If the result is non-deterministic, more than one symbolic heap can be produced.
sh | an instance of symbolic heap, used in read/write mode |
dst | a container for the results caused by non-deterministic decisions |
obj | abstract heap object that should be concretized |
ts | target specifier refining the target to be concretized |
leakObjs | if not NULL, push all leaked root objects to the list |
void debugSymAbstract | ( | bool | enable | ) |
enable/disable debugging of symabstract