ROSE
0.11.137.0
|
Basic block callback to detect function returns.
The architecture agnostic isFunctionReturn test for basic blocks does not detect x86 "RET N" (N!=0) instructions as returning from a function because such instructions have side effects that apply after the return-to address is popped from the stack. Therefore this basic block callback looks for such instructions and sets the isFunctionReturn property for the basic block.
Definition at line 97 of file ModulesX86.h.
#include <Rose/BinaryAnalysis/Partitioner2/ModulesX86.h>
Public Member Functions | |
virtual bool | operator() (bool chain, const Args &) override |
Callback method. More... | |
![]() | |
SharedObject () | |
Default constructor. More... | |
SharedObject (const SharedObject &) | |
Copy constructor. More... | |
virtual | ~SharedObject () |
Virtual destructor. More... | |
SharedObject & | operator= (const SharedObject &) |
Assignment. More... | |
Static Public Member Functions | |
static Ptr | instance () |
Allocating constructor. More... | |
Additional Inherited Members | |
![]() | |
enum | Termination { CONTINUE_DISCOVERY, TERMINATE_NOW, TERMINATE_PRIOR } |
Whether to terminate a basic block. More... | |
using | Ptr = BasicBlockCallbackPtr |
Shared-ownership pointer to a BasicBlockCallback. More... | |
|
inlinestatic |
Allocating constructor.
Definition at line 99 of file ModulesX86.h.
|
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.