1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
7 #include "genericDataflowCommon.h"
17 bool defaultFilter (
CFGNode cfgn);
30 std::string toString()
const {
return n.
toString();}
32 std::string id()
const {
return n.
id();}
34 unsigned int getIndex()
const {
return n.
getIndex();}
35 std::vector<DataflowEdge> outEdges()
const;
36 std::vector<DataflowEdge> inEdges()
const;
37 bool isInteresting()
const;
38 bool operator==(
const DataflowNode& o)
const {
return n == o.n;}
39 bool operator!=(
const DataflowNode& o)
const {
return !(*
this == o);}
40 bool operator<(
const DataflowNode& o)
const {
return n < o.n;}
42 std::string str(std::string indent=
"")
const;
45 typedef std::map<SgNode*, DataflowNode> m_AST2CFG;
56 std::string toString()
const {
return p.toString();}
57 std::string toStringForDebugging()
const {
return p.toStringForDebugging();}
58 std::string id()
const {
return p.id();}
61 EdgeConditionKind condition()
const {
return p.condition();}
63 SgExpression* conditionBasedOn()
const {
return p.conditionBasedOn();}
64 std::vector<SgInitializedName*> scopesBeingExited()
const {
return p.scopesBeingExited();}
65 std::vector<SgInitializedName*> scopesBeingEntered()
const {
return p.scopesBeingEntered();}
66 bool operator==(
const DataflowEdge& o)
const {
return p == o.p;}
67 bool operator!=(
const DataflowEdge& o)
const {
return p != o.p;}
77 bool isDataflowInteresting(
CFGNode cn);
unsigned int getIndex() const
An identifying index within the AST node given by getNode()
std::string id() const
ID to use for Dot, etc.
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes, since similar to statement, expressions have a concrete location within the user's source code.
A node in the control flow graph.
This class represents the base class for all IR nodes within Sage III.
std::string toStringForDebugging() const
String for debugging graphs.
SgNode * getNode() const
The underlying AST node.
std::string toString() const
Pretty string for Dot node labels, etc.