diff options
Diffstat (limited to 'lib/ReaderWriter/MachO/Atoms.h')
-rw-r--r-- | lib/ReaderWriter/MachO/Atoms.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/lib/ReaderWriter/MachO/Atoms.h b/lib/ReaderWriter/MachO/Atoms.h index 9f2e5acad99a..573efca9f6f9 100644 --- a/lib/ReaderWriter/MachO/Atoms.h +++ b/lib/ReaderWriter/MachO/Atoms.h @@ -1,4 +1,4 @@ -//===- lib/ReaderWriter/MachO/Atoms.h -------------------------------------===// +//===- lib/ReaderWriter/MachO/Atoms.h ---------------------------*- C++ -*-===// // // The LLVM Linker // @@ -10,10 +10,21 @@ #ifndef LLD_READER_WRITER_MACHO_ATOMS_H #define LLD_READER_WRITER_MACHO_ATOMS_H +#include "lld/Core/Atom.h" +#include "lld/Core/DefinedAtom.h" +#include "lld/Core/SharedLibraryAtom.h" #include "lld/Core/Simple.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/StringRef.h" +#include <cstdint> +#include <string> namespace lld { + +class File; + namespace mach_o { + class MachODefinedAtom : public SimpleDefinedAtom { public: MachODefinedAtom(const File &f, const StringRef name, Scope scope, @@ -32,6 +43,8 @@ public: _contentType(type), _scope(scope), _merge(mergeNo), _thumb(false), _noDeadStrip(noDeadStrip) {} + ~MachODefinedAtom() override = default; + uint64_t size() const override { return _content.size(); } ContentType contentType() const override { return _contentType; } @@ -61,15 +74,6 @@ public: bool isThumb() const { return _thumb; } - void addReference(uint32_t offsetInAtom, uint16_t relocType, - const Atom *target, Reference::Addend addend, - Reference::KindArch arch = Reference::KindArch::x86_64, - Reference::KindNamespace ns - = Reference::KindNamespace::mach_o) { - SimpleDefinedAtom::addReference(ns, arch, relocType, offsetInAtom, target, - addend); - } - private: const StringRef _name; const ArrayRef<uint8_t> _content; @@ -92,6 +96,8 @@ public: content, align), _sectionName(sectionName) {} + ~MachODefinedCustomSectionAtom() override = default; + SectionChoice sectionChoice() const override { return DefinedAtom::sectionCustomRequired; } @@ -110,6 +116,8 @@ public: : SimpleDefinedAtom(f), _name(name), _scope(scope), _size(size), _align(align) {} + ~MachOTentativeDefAtom() override = default; + uint64_t size() const override { return _size; } Merge merge() const override { return DefinedAtom::mergeAsTentative; } @@ -167,7 +175,7 @@ private: StringRef _dylibInstallName; }; -} // namespace mach_o -} // namespace lld +} // end namespace mach_o +} // end namespace lld #endif // LLD_READER_WRITER_MACHO_ATOMS_H |