ROSE 0.11.145.192
Public Member Functions | List of all members
Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration Class Reference

Description

Configuration information for a basic block.

Definition at line 19 of file Configuration.h.

#include <Rose/BinaryAnalysis/Partitioner2/Configuration.h>

Public Member Functions

 BasicBlockConfiguration (rose_addr_t va)
 Configuration information for a basic block.
 
rose_addr_t address () const
 Property: starting address.
 
const std::string & comment () const
 Property: comment.
 
BasicBlockConfigurationcomment (const std::string &s)
 Property: comment.
 
const SourceLocationsourceLocation () const
 Property: location of basic block in source code.
 
BasicBlockConfigurationsourceLocation (const SourceLocation &loc)
 Property: location of basic block in source code.
 
Sawyer::Optional< rose_addr_t > finalInstructionVa () const
 Property: last instruction.
 
BasicBlockConfigurationfinalInstructionVa (const Sawyer::Optional< rose_addr_t > &va)
 Property: last instruction.
 
const std::set< rose_addr_t > & successorVas () const
 Property: control flow successors.
 
std::set< rose_addr_t > & successorVas ()
 Property: control flow successors.
 
BasicBlockConfigurationsuccessorVas (const std::set< rose_addr_t > &vas)
 Property: control flow successors.
 
BasicBlockConfigurationinsertSuccessorVa (rose_addr_t va)
 Property: control flow successors.
 
BasicBlockConfigurationclearSuccessorVas ()
 Property: control flow successors.
 

Constructor & Destructor Documentation

◆ BasicBlockConfiguration() [1/2]

Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::BasicBlockConfiguration ( )
inline

Definition at line 28 of file Configuration.h.

◆ BasicBlockConfiguration() [2/2]

Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::BasicBlockConfiguration ( rose_addr_t  va)
inlineexplicit

Configuration information for a basic block.

Definition at line 31 of file Configuration.h.

Member Function Documentation

◆ address()

rose_addr_t Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::address ( ) const
inline

Property: starting address.

Addresses are read-only and specified in the constructor.

Definition at line 36 of file Configuration.h.

◆ comment() [1/2]

const std::string & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::comment ( ) const
inline

Property: comment.

A basic block may have a multi-line, plain-text, ASCII comment.

Definition at line 43 of file Configuration.h.

◆ comment() [2/2]

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::comment ( const std::string &  s)
inline

Property: comment.

A basic block may have a multi-line, plain-text, ASCII comment.

Definition at line 44 of file Configuration.h.

◆ sourceLocation() [1/2]

const SourceLocation & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::sourceLocation ( ) const
inline

Property: location of basic block in source code.

Definition at line 50 of file Configuration.h.

◆ sourceLocation() [2/2]

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::sourceLocation ( const SourceLocation loc)
inline

Property: location of basic block in source code.

Definition at line 51 of file Configuration.h.

◆ finalInstructionVa() [1/2]

Sawyer::Optional< rose_addr_t > Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::finalInstructionVa ( ) const
inline

Property: last instruction.

Virtual address of basic block's final instruction. Basic blocks are usually constructed one instruction at a time, so specifying a final instruction is one way to force the end of a basic block. A final instruction is required for some of the other properties to be well defined.

Definition at line 61 of file Configuration.h.

◆ finalInstructionVa() [2/2]

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::finalInstructionVa ( const Sawyer::Optional< rose_addr_t > &  va)
inline

Property: last instruction.

Virtual address of basic block's final instruction. Basic blocks are usually constructed one instruction at a time, so specifying a final instruction is one way to force the end of a basic block. A final instruction is required for some of the other properties to be well defined.

Definition at line 62 of file Configuration.h.

◆ successorVas() [1/3]

const std::set< rose_addr_t > & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::successorVas ( ) const
inline

Property: control flow successors.

A basic block's control flow successors are normally calculated automatically. However, it is sometimes useful to be able to override them manually, such as when the calculation fails to do anything meaningful. Successors in this list only apply when the basic block reaches its final instruction (see

See also
finalInstructionVa).

Definition at line 72 of file Configuration.h.

◆ successorVas() [2/3]

std::set< rose_addr_t > & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::successorVas ( )
inline

Property: control flow successors.

A basic block's control flow successors are normally calculated automatically. However, it is sometimes useful to be able to override them manually, such as when the calculation fails to do anything meaningful. Successors in this list only apply when the basic block reaches its final instruction (see

See also
finalInstructionVa).

Definition at line 73 of file Configuration.h.

◆ successorVas() [3/3]

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::successorVas ( const std::set< rose_addr_t > &  vas)
inline

Property: control flow successors.

A basic block's control flow successors are normally calculated automatically. However, it is sometimes useful to be able to override them manually, such as when the calculation fails to do anything meaningful. Successors in this list only apply when the basic block reaches its final instruction (see

See also
finalInstructionVa).

Definition at line 74 of file Configuration.h.

◆ insertSuccessorVa()

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::insertSuccessorVa ( rose_addr_t  va)
inline

Property: control flow successors.

A basic block's control flow successors are normally calculated automatically. However, it is sometimes useful to be able to override them manually, such as when the calculation fails to do anything meaningful. Successors in this list only apply when the basic block reaches its final instruction (see

See also
finalInstructionVa).

Definition at line 75 of file Configuration.h.

◆ clearSuccessorVas()

BasicBlockConfiguration & Rose::BinaryAnalysis::Partitioner2::BasicBlockConfiguration::clearSuccessorVas ( )
inline

Property: control flow successors.

A basic block's control flow successors are normally calculated automatically. However, it is sometimes useful to be able to override them manually, such as when the calculation fails to do anything meaningful. Successors in this list only apply when the basic block reaches its final instruction (see

See also
finalInstructionVa).

Definition at line 76 of file Configuration.h.


The documentation for this class was generated from the following file: