Class CFGEdge#

Class Documentation#

class CFGEdge#

A control flow edge connecting two CFG nodes, with an edge condition to indicate edge types.

Public Functions

inline CFGEdge(CFGNode src, CFGNode tgt)#

Constructor.

inline CFGEdge()#

Default constructor. Used for compatibility with containers.

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.

inline CFGNode source() const#

The source (beginning) CFG node.

inline CFGNode target() const#

The target (ending) CFG node.

EdgeConditionKind condition() const#

The control flow condition that enables this edge.

SgExpression *caseLabel() const#

The label of the case represented by an eckCaseLabel edge.

unsigned int computedGotoCaseIndex() const#

The expression of the computed goto represented by the eckArithmeticIf* conditions.

SgExpression *conditionBasedOn() const#

The test or case key that is tested as a condition of this control flow edge.

std::vector<SgInitializedName*> scopesBeingExited() const#

Variables going out of scope across this edge (not extensively tested)

std::vector<SgInitializedName*> scopesBeingEntered() const#

Variables coming into scope across this edge (not extensively tested)

inline bool operator==(const CFGEdge &o) const#

Compare equality of edges.

inline bool operator!=(const CFGEdge &o) const#

Compare disequality of edges.

inline bool operator<(const CFGEdge &o) const#

operator<() has an arbitrary ordering, but allows these objects to be used with std::set and std::map