ROSE
0.11.96.11
|
A pointer to a vertex of the static taint lattice.
The taint lattice is static, consisting of only the vertices defined by the Vertex enum. A TaintLattice object is slightly misnamed but follows existing convention: it's not really the whole lattice, but a pointer to one of the static latice's vertices.
Definition at line 57 of file taintAnalysis.h.
#include <taintAnalysis.h>
Public Types | |
enum | Vertex { VERTEX_BOTTOM, VERTEX_UNTAINTED, VERTEX_TAINTED } |
The differet vertices of this static lattice. More... | |
Public Member Functions | |
TaintLattice () | |
Default initializer makes this object point to the lattice's bottom vertex. | |
virtual void | initialize () override |
Same as default constructor. | |
virtual Lattice * | copy () const override |
Returns a new copy of this vertex pointer. | |
virtual void | copy (Lattice *other_) override |
Assignment-like operator. More... | |
virtual bool | operator== (Lattice *other_) override |
Equality predicate, sort of. More... | |
virtual std::string | str (std::string prefix) override |
String representation of the lattice vertex to which this object points. More... | |
std::string | to_string () const |
String representation of a lattice vertex. More... | |
virtual bool | meetUpdate (Lattice *other_) override |
Merges this lattice node with another and stores the result in this node. More... | |
Vertex | get_vertex () const |
Accessor for this node's vertex in the lattice. More... | |
bool | set_vertex (Vertex v) |
Accessor for this node's vertex in the lattice. More... | |
Public Member Functions inherited from FiniteLattice | |
bool | finiteLattice () |
Check if this lattice is finite or not. | |
Public Member Functions inherited from Lattice | |
virtual void | remapVars (const std::map< varID, varID > &varNameMap, const Function &newFunc) |
virtual void | incorporateVars (Lattice *that) |
virtual Lattice * | project (SgExpression *expr) |
virtual bool | unProject (SgExpression *expr, Lattice *exprState) |
bool | operator!= (Lattice *that) |
bool | operator== (Lattice &that) |
bool | operator!= (Lattice &that) |
Protected Attributes | |
Vertex | vertex |
The vertex of the static taint lattice to which this object points. | |
enum TaintLattice::Vertex |
The differet vertices of this static lattice.
They're defined in a particular order so that the meetUpdate() method only needs to compute the maximum when merging two vertex pointers. A value is considered to be tainted if it points to the VERTEX_TAINTED or the VERTEX_TOP vertex of the static taint lattice.
Enumerator | |
---|---|
VERTEX_BOTTOM | No information is known about the value of the variable. |
VERTEX_UNTAINTED | Value is not tainted. |
VERTEX_TAINTED | Value is tainted. |
Definition at line 65 of file taintAnalysis.h.
|
inline |
Accessor for this node's vertex in the lattice.
The set_level() mutator also returns true if the new value is different than the old value, and false if there was no change.
Definition at line 88 of file taintAnalysis.h.
bool TaintLattice::set_vertex | ( | Vertex | v | ) |
Accessor for this node's vertex in the lattice.
The set_level() mutator also returns true if the new value is different than the old value, and false if there was no change.
|
overridevirtual |
Assignment-like operator.
Makes this object point to the same lattice vertex as the other
object. The other object must also be a TaintLattice object.
Implements Lattice.
|
overridevirtual |
Equality predicate, sort of.
Beware that this is not true equality since it is not symmetric.
Implements Lattice.
|
inlineoverridevirtual |
String representation of the lattice vertex to which this object points.
The return value is the name of the vertex to which this object points, sans "VERTEX_" prefix, and converted to lower case. The prefix
is prepended to the returned string.
Implements printable.
Definition at line 118 of file taintAnalysis.h.
std::string TaintLattice::to_string | ( | ) | const |
String representation of a lattice vertex.
Returns the name of the taint lattice vertex to which this object points. The returned string is one of the Vertex enum constants sans the "VERTEX_" prefix and converted to lower case.
|
overridevirtual |
Merges this lattice node with another and stores the result in this node.
Returns true iff this node changed.
Implements Lattice.