Mercurial > hg > CbC > CbC_llvm
view lld/MachO/Dwarf.h @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 79ff65ed7e25 |
children | 1f2b6ac9f198 |
line wrap: on
line source
//===- DWARF.h -----------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===-------------------------------------------------------------------===// #ifndef LLD_MACHO_DWARF_H #define LLD_MACHO_DWARF_H #include "llvm/ADT/StringRef.h" #include "llvm/DebugInfo/DWARF/DWARFObject.h" namespace lld::macho { class ObjFile; // Implements the interface between LLVM's DWARF-parsing utilities and LLD's // InputSection structures. class DwarfObject final : public llvm::DWARFObject { public: bool isLittleEndian() const override { return true; } llvm::Optional<llvm::RelocAddrEntry> find(const llvm::DWARFSection &sec, uint64_t pos) const override { // TODO: implement this return llvm::None; } void forEachInfoSections( llvm::function_ref<void(const llvm::DWARFSection &)> f) const override { f(infoSection); } llvm::StringRef getAbbrevSection() const override { return abbrevSection; } llvm::StringRef getStrSection() const override { return strSection; } llvm::DWARFSection const &getLineSection() const override { return lineSection; } llvm::DWARFSection const &getStrOffsetsSection() const override { return strOffsSection; } // Returns an instance of DwarfObject if the given object file has the // relevant DWARF debug sections. static std::unique_ptr<DwarfObject> create(ObjFile *); private: llvm::DWARFSection infoSection; llvm::DWARFSection lineSection; llvm::DWARFSection strOffsSection; llvm::StringRef abbrevSection; llvm::StringRef strSection; }; } // namespace lld::macho #endif