1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
7 #include "genericDataflowCommon.h"
12 namespace VirtualCFG {
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);