ROSE
0.9.6a
|
A pointer to a vertex of the static taint lattice. More...
#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. More... | |
virtual void | initialize () |
Same as default constructor. More... | |
virtual Lattice * | copy () const |
Returns a new copy of this vertex pointer. More... | |
virtual void | copy (Lattice *other_) |
Assignment-like operator. More... | |
virtual bool | operator== (Lattice *other_) |
Equality predicate, sort of. More... | |
virtual std::string | str (std::string prefix) |
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_) |
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. More... | |
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) |
Public Member Functions inherited from printable | |
virtual | ~printable () |
Protected Attributes | |
Vertex | vertex |
The vertex of the static taint lattice to which this object points. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &o, const TaintLattice &lattice) |
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 54 of file taintAnalysis.h.
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 60 of file taintAnalysis.h.
|
inline |
Default initializer makes this object point to the lattice's bottom vertex.
Definition at line 73 of file taintAnalysis.h.
Referenced by copy(), and initialize().
|
inlinevirtual |
Same as default constructor.
Implements Lattice.
Definition at line 76 of file taintAnalysis.h.
References TaintLattice().
|
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 83 of file taintAnalysis.h.
References vertex.
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.
|
inlinevirtual |
Returns a new copy of this vertex pointer.
Implements Lattice.
Definition at line 89 of file taintAnalysis.h.
References TaintLattice().
|
virtual |
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.
|
virtual |
Equality predicate, sort of.
Beware that this is not true equality since it is not symmetric.
Implements Lattice.
|
inlinevirtual |
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 113 of file taintAnalysis.h.
References to_string().
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.
Referenced by TaintAnalysis::lattice_info(), and str().
|
virtual |
Merges this lattice node with another and stores the result in this node.
Returns true iff this node changed.
Implements Lattice.
|
friend |
|
protected |
The vertex of the static taint lattice to which this object points.
Definition at line 68 of file taintAnalysis.h.
Referenced by get_vertex().