| 
    ROSE 0.11.145.357
    
   | 
 
CFG vertex for data-flow analysis.
Definition at line 29 of file Partitioner2/DataFlow.h.
#include <Rose/BinaryAnalysis/Partitioner2/DataFlow.h>
Public Types | |
| enum | Type {  BBLOCK , FAKED_CALL , FUNCRET , INDET }  | 
| Vertex type.  More... | |
Public Member Functions | |
| DfCfgVertex (const BasicBlockPtr &, const FunctionPtr &parentFunction, size_t inliningId) | |
| Construct a basic block vertex.   | |
| DfCfgVertex (const FunctionPtr &function, const FunctionPtr &parentFunction, size_t inliningId) | |
| Construct a faked call vertex.   | |
| DfCfgVertex (Type type, const FunctionPtr &parentFunction, size_t inliningId) | |
| Construct a vertex of specified type that takes no auxiliary data.  | |
| Type | type () const | 
| Type of the vertex.   | |
| const BasicBlockPtr & | bblock () const | 
| Basic block.   | |
| const FunctionPtr & | callee () const | 
| Function represented by faked call.  | |
| FunctionPtr | parentFunction () const | 
| Function owning this vertex.   | |
| size_t | inliningId () const | 
| Inlining invocation number.   | |
| Sawyer::Optional< Address > | address () const | 
| Virtual address of vertex.   | |
| void | print (std::ostream &) const | 
| Print a short description of this vertex.   | |
| std::string | toString () const | 
| Single-line description of this vertex.   | |
Vertex type.
| Enumerator | |
|---|---|
| BBLOCK | Vertex represents a basic block.  | 
| FAKED_CALL | Represents a whole called function.  | 
| FUNCRET | Vertex represents returning to the caller.  | 
| INDET | Indeterminate basic block where no information is available.  | 
Definition at line 32 of file Partitioner2/DataFlow.h.
| Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::DfCfgVertex | ( | const BasicBlockPtr & | , | 
| const FunctionPtr & | parentFunction, | ||
| size_t | inliningId | ||
| ) | 
Construct a basic block vertex.
The basic block pointer should not be a null pointer.
| Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::DfCfgVertex | ( | const FunctionPtr & | function, | 
| const FunctionPtr & | parentFunction, | ||
| size_t | inliningId | ||
| ) | 
Construct a faked call vertex.
The function may be null if indeterminate.
| Type Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::type | ( | ) | const | 
Type of the vertex.
Vertex types are immutable, defined when the vertex is created. Every vertex has a type.
| const BasicBlockPtr & Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::bblock | ( | ) | const | 
Basic block.
The basic block for a vertex is immutable, defined when the vertex is created. Only basic block vertices have a basic block; other vertex types will return a null pointer.
| FunctionPtr Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::parentFunction | ( | ) | const | 
Function owning this vertex.
Pointer to the function to which this vertex belongs. For basic blocks, it's a function to which the basic block belongs; for faked calls, its the caller function; for function returns, it's the function returning; for the indeterminate vertex it's a null pointer.
| size_t Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::inliningId | ( | ) | const | 
Inlining invocation number.
For a graph constructed for interprocedural data-flow, some function calls are replaced by the called function's body. Each time this inlining happens, a counter is incremented and all new vertices are created using this counter. The counter starts at zero.
| Sawyer::Optional< Address > Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::address | ( | ) | const | 
Virtual address of vertex.
Returns the virtual address if known, otherwise nothing.
| void Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::print | ( | std::ostream & | ) | const | 
Print a short description of this vertex.
The description is a single-line string with no line termination.
| std::string Rose::BinaryAnalysis::Partitioner2::DataFlow::DfCfgVertex::toString | ( | ) | const | 
Single-line description of this vertex.
The description is a single-line string with no line termination.