Public Member Functions | List of all members
Rose::BinaryAnalysis::AsmUnparser::BasicBlockSuccessors Class Reference


Functor to emit block successor list.

If the unparser's control flow graph is not empty, then we use it to find successors, otherwise we consult the successors cached in the AST. The AST-cached successors were probably cached by the instruction partitioner (see Partitioner class), which does fairly extensive analysis – certainly more than just looking at the last instruction of the block.

Definition at line 504 of file AsmUnparser.h.

#include <AsmUnparser.h>

Inheritance diagram for Rose::BinaryAnalysis::AsmUnparser::BasicBlockSuccessors:
Inheritance graph
Collaboration diagram for Rose::BinaryAnalysis::AsmUnparser::BasicBlockSuccessors:
Collaboration graph

Public Member Functions

virtual bool operator() (bool enabled, const BasicBlockArgs &args)
 Default callbacks. More...
- Public Member Functions inherited from Rose::BinaryAnalysis::AsmUnparser::UnparserCallback
virtual bool operator() (bool enabled, const InsnArgs &)
 Default callbacks. More...
virtual bool operator() (bool enabled, const StaticDataArgs &)
 Default callbacks. More...
virtual bool operator() (bool enabled, const DataBlockArgs &)
 Default callbacks. More...
virtual bool operator() (bool enabled, const FunctionArgs &)
 Default callbacks. More...
virtual bool operator() (bool enabled, const InterpretationArgs &)
 Default callbacks. More...

Member Function Documentation

virtual bool Rose::BinaryAnalysis::AsmUnparser::BasicBlockSuccessors::operator() ( bool  enabled,
const BasicBlockArgs  

Default callbacks.

The default is to abort, because if these are called it means one of three things:

  1. The arguments are wrong in the subclass and the subclass therefore isn't providing an implementation when it thinks it is.
  2. The wrong type was used for the second argument. Instruction callbacks use InsnArgs, basic block callbacks use BasicBlockArgs, etc.
  3. The functor was added to the wrong callback list. For instance, an instruction functor was accidently added to one of the function callback lists.

Reimplemented from Rose::BinaryAnalysis::AsmUnparser::UnparserCallback.

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