ROSE
0.11.96.11
|
A node in the control flow graph.
Each CFG node corresponds to an AST node, but there can be several CFG nodes for a given AST node.
Definition at line 70 of file virtualCFG.h.
#include <virtualCFG.h>
Public Member Functions | |
CFGNode (SgNode *node, unsigned int index=0) | |
std::string | toString () const |
Pretty string for Dot node labels, etc. | |
std::string | toStringForDebugging () const |
String for debugging graphs. | |
std::string | id () const |
ID to use for Dot, etc. | |
SgNode * | getNode () const |
The underlying AST node. | |
unsigned int | getIndex () const |
An identifying index within the AST node given by getNode() | |
std::vector< CFGEdge > | outEdges () const |
Outgoing control flow edges from this node. | |
std::vector< CFGEdge > | inEdges () const |
Incoming control flow edges to this node. | |
bool | isInteresting () const |
Test whether this node satisfies a (fairly arbitrary) standard for "interestingness". More... | |
bool | operator== (const CFGNode &o) const |
Equality operator. | |
bool | operator!= (const CFGNode &o) const |
Disequality operator. | |
bool | operator< (const CFGNode &o) const |
Less-than operator. | |
bool VirtualCFG::CFGNode::isInteresting | ( | ) | const |
Test whether this node satisfies a (fairly arbitrary) standard for "interestingness".
There are many administrative nodes in the raw CFG (nodes that do not correspond to operations in the program), and this function filters them out.