diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h')
-rw-r--r-- | llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h b/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h index 78be89cfca9..d679edef7ea 100644 --- a/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h +++ b/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h @@ -44,13 +44,20 @@ private: Error processCIE(); Error processFDE(JITTargetAddress CIEPointerAddress, uint32_t CIEPointer); + struct CIEInformation { + CIEInformation() = default; + CIEInformation(DefinedAtom &CIEAtom) : CIEAtom(&CIEAtom) {} + DefinedAtom *CIEAtom = nullptr; + bool FDEsHaveLSDAField = false; + }; + AtomGraph &G; Section &EHFrameSection; StringRef EHFrameContent; JITTargetAddress EHFrameAddress; BinaryStreamReader EHFrameReader; DefinedAtom *CurRecordAtom = nullptr; - bool LSDAFieldPresent = false; + DenseMap<JITTargetAddress, CIEInformation> CIEInfos; Edge::Kind FDEToCIERelocKind; Edge::Kind FDEToTargetRelocKind; }; |