LLVM: llvm::jitlink::EHFrameCFIBlockInspector Class Reference (original) (raw)
Inspect an eh-frame CFI record. More...
#include "[llvm/ExecutionEngine/JITLink/EHFrameSupport.h](EHFrameSupport%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| bool | isFDE () const |
| Returns true if this frame is an FDE, false for a CIE. | |
| bool | isCIE () const |
| Returns true if this frame is a CIE, false for an FDE. | |
| Edge * | getPersonalityEdge () const |
| If this is a CIE record, returns the Edge pointing at the personality function, if any. | |
| Edge * | getCIEEdge () const |
| If this is an FDE record, returns the Edge pointing to the CIE. | |
| Edge * | getPCBeginEdge () const |
| If this is an FDE record, returns the Edge pointing at the PC-begin symbol. | |
| Edge * | getLSDAEdge () const |
| If this is an FDE record, returns the Edge pointing at the LSDA, if any. |
Inspect an eh-frame CFI record.
Definition at line 26 of file EHFrameSupport.h.
◆ FromEdgeScan()
Identify CFI record type and edges based on number and order of edges in the given block only.
This assumes that the block contains one CFI record that has already been split out and fixed by the DWARFRecordSplitter and EHFrameEdgeFixer passes.
Zero or one outgoing edges: Record is CIE. If present, edge points to personality.
Two or three outgoing edges: Record is an FDE. First edge points to CIE, second to PC-begin, third (if present) to LSDA.
It is illegal to call this function on a block with four or more edges.
Definition at line 641 of file EHFrameSupport.cpp.
References assert(), B(), LHS, llvm::make_pointer_range(), RHS, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::sort().
◆ getCIEEdge()
| Edge * llvm::jitlink::EHFrameCFIBlockInspector::getCIEEdge ( ) const | inline |
|---|
If this is an FDE record, returns the Edge pointing to the CIE.
If this is a CIE record, returns null.
The result is not valid if any modification has been made to the block after parsing.
Definition at line 61 of file EHFrameSupport.h.
◆ getLSDAEdge()
| Edge * llvm::jitlink::EHFrameCFIBlockInspector::getLSDAEdge ( ) const | inline |
|---|
◆ getPCBeginEdge()
| Edge * llvm::jitlink::EHFrameCFIBlockInspector::getPCBeginEdge ( ) const | inline |
|---|
If this is an FDE record, returns the Edge pointing at the PC-begin symbol.
If this a CIE record, returns null.
Definition at line 66 of file EHFrameSupport.h.
◆ getPersonalityEdge()
| Edge * llvm::jitlink::EHFrameCFIBlockInspector::getPersonalityEdge ( ) const | inline |
|---|
◆ isCIE()
| bool llvm::jitlink::EHFrameCFIBlockInspector::isCIE ( ) const | inline |
|---|
◆ isFDE()
| bool llvm::jitlink::EHFrameCFIBlockInspector::isFDE ( ) const | inline |
|---|
◆ LSDAEdge
Edge* llvm::jitlink::EHFrameCFIBlockInspector::LSDAEdge
◆ PersonalityEdge
Edge* llvm::jitlink::EHFrameCFIBlockInspector::PersonalityEdge
The documentation for this class was generated from the following files:
- include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h
- lib/ExecutionEngine/JITLink/EHFrameSupport.cpp