1#include <featureTests.h> 
    2#ifdef ROSE_ENABLE_SOURCE_ANALYSIS 
    4#ifndef ROSE_TaintAnalysis_H 
    5#define ROSE_TaintAnalysis_H 
   28#include "liveDeadVarAnalysis.h"         
  116    virtual std::string 
str( std::string prefix) 
 override {
 
 
  130    friend std::ostream& operator<<(std::ostream &o, 
const TaintLattice &lattice);
 
 
  147        : ldv_analysis(ldv_analysis), debug(NULL) {}
 
  176                      std::vector<Lattice*>& initLattices, std::vector<NodeFact*>& initFacts);
 
  193        return lattice ? lattice->
to_string() : 
"dead";
 
 
 
This class represents the base class for all IR nodes within Sage III.
 
bool magic_tainted(SgNode *node, FiniteVarsExprsProductLattice *prodLat)
Make certain variables always tainted.
 
void genInitState(const Function &func, const DataflowNode &node, const NodeState &state, std::vector< Lattice * > &initLattices, std::vector< NodeFact * > &initFacts)
Generate initial lattice state.
 
bool transfer(const Function &func, const DataflowNode &node_, NodeState &state, const std::vector< Lattice * > &dfInfo)
Adjust a result vertex pointer.
 
std::ostream * get_debug() const
Accessor for debug settings.
 
static std::string lattice_info(const TaintLattice *lattice)
Helps print lattice pointers.
 
void set_debug(std::ostream *os)
Accessor for debug settings.
 
A pointer to a vertex of the static taint lattice.
 
virtual void initialize() override
Same as default constructor.
 
@ VERTEX_UNTAINTED
Value is not tainted.
 
@ VERTEX_BOTTOM
No information is known about the value of the variable.
 
@ VERTEX_TAINTED
Value is tainted.
 
virtual Lattice * copy() const override
Returns a new copy of this vertex pointer.
 
virtual bool operator==(Lattice *other_) override
Equality predicate, sort of.
 
virtual void copy(Lattice *other_) override
Assignment-like operator.
 
Vertex vertex
The vertex of the static taint lattice to which this object points.
 
virtual bool meetUpdate(Lattice *other_) override
Merges this lattice node with another and stores the result in this node.
 
bool set_vertex(Vertex v)
Accessor for this node's vertex in the lattice.
 
std::string to_string() const
String representation of a lattice vertex.
 
Vertex get_vertex() const
Accessor for this node's vertex in the lattice.
 
TaintLattice()
Default initializer makes this object point to the lattice's bottom vertex.
 
virtual std::string str(std::string prefix) override
String representation of the lattice vertex to which this object points.