|
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().