ROSE 0.11.145.147
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors Class Reference

Description

Basic block callback to detect "switch" statements.

Examines the instructions of a basic block to determine if they are from a C "switch"-like statement and attempts to find the "case" labels, adding them as successors to this basic block.

Definition at line 107 of file ModulesX86.h.

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

Inheritance diagram for Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors:
Collaboration graph
[legend]

Public Types

enum  EntryType {
  ABSOLUTE ,
  RELATIVE
}
 
- Public Types inherited from Rose::BinaryAnalysis::Partitioner2::BasicBlockCallback
enum  Termination {
  CONTINUE_DISCOVERY ,
  TERMINATE_NOW ,
  TERMINATE_PRIOR
}
 Whether to terminate a basic block. More...
 
using Ptr = BasicBlockCallbackPtr
 Shared-ownership pointer to a BasicBlockCallback.
 

Public Member Functions

virtual bool operator() (bool chain, const Args &) override
 Callback method.
 
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor.
 
 SharedObject (const SharedObject &)
 Copy constructor.
 
virtual ~SharedObject ()
 Virtual destructor.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 

Static Public Member Functions

static Ptr instance ()
 Allocating constructor.
 

Member Enumeration Documentation

◆ EntryType

enum Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors::EntryType

Definition at line 109 of file ModulesX86.h.

Constructor & Destructor Documentation

◆ SwitchSuccessors()

Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors::SwitchSuccessors ( )
inline

Definition at line 117 of file ModulesX86.h.

Member Function Documentation

◆ instance()

static Ptr Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors::instance ( )
inlinestatic

Allocating constructor.

Definition at line 119 of file ModulesX86.h.

◆ operator()()

virtual bool Rose::BinaryAnalysis::Partitioner2::ModulesX86::SwitchSuccessors::operator() ( bool  chain,
const Args  
)
overridevirtual

Callback method.

This is the method invoked for the callback. The chain argument is the return value from the previous callback in the list (true for the first callback). The successor callbacks use chain to indicate whether subsequent callbacks should do anything.

Implements Rose::BinaryAnalysis::Partitioner2::BasicBlockCallback.


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