diff options
Diffstat (limited to 'gnu/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h')
| -rw-r--r-- | gnu/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/gnu/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h b/gnu/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h deleted file mode 100644 index 49e65f63151..00000000000 --- a/gnu/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h +++ /dev/null @@ -1,102 +0,0 @@ -//===---- lib/ReaderWriter/MachO/SectCreateFile.h ---------------*- c++ -*-===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLD_READER_WRITER_MACHO_SECTCREATE_FILE_H -#define LLD_READER_WRITER_MACHO_SECTCREATE_FILE_H - -#include "lld/Core/DefinedAtom.h" -#include "lld/Core/Simple.h" -#include "lld/ReaderWriter/MachOLinkingContext.h" - -namespace lld { -namespace mach_o { - -// -// A FlateNamespaceFile instance may be added as a resolution source of last -// resort, depending on how -flat_namespace and -undefined are set. -// -class SectCreateFile : public File { -public: - class SectCreateAtom : public SimpleDefinedAtom { - public: - SectCreateAtom(const File &file, StringRef segName, StringRef sectName, - std::unique_ptr<MemoryBuffer> content) - : SimpleDefinedAtom(file), - _combinedName((segName + "/" + sectName).str()), - _content(std::move(content)) {} - - ~SectCreateAtom() override = default; - - uint64_t size() const override { return _content->getBufferSize(); } - - Scope scope() const override { return scopeGlobal; } - - ContentType contentType() const override { return typeSectCreate; } - - SectionChoice sectionChoice() const override { return sectionCustomRequired; } - - StringRef customSectionName() const override { return _combinedName; } - - DeadStripKind deadStrip() const override { return deadStripNever; } - - ArrayRef<uint8_t> rawContent() const override { - const uint8_t *data = - reinterpret_cast<const uint8_t*>(_content->getBufferStart()); - return ArrayRef<uint8_t>(data, _content->getBufferSize()); - } - - StringRef segmentName() const { return _segName; } - StringRef sectionName() const { return _sectName; } - - private: - std::string _combinedName; - StringRef _segName; - StringRef _sectName; - std::unique_ptr<MemoryBuffer> _content; - }; - - SectCreateFile() : File("sectcreate", kindSectCreateObject) {} - - void addSection(StringRef seg, StringRef sect, - std::unique_ptr<MemoryBuffer> content) { - _definedAtoms.push_back( - new (allocator()) SectCreateAtom(*this, seg, sect, std::move(content))); - } - - const AtomRange<DefinedAtom> defined() const override { - return _definedAtoms; - } - - const AtomRange<UndefinedAtom> undefined() const override { - return _noUndefinedAtoms; - } - - const AtomRange<SharedLibraryAtom> sharedLibrary() const override { - return _noSharedLibraryAtoms; - } - - const AtomRange<AbsoluteAtom> absolute() const override { - return _noAbsoluteAtoms; - } - - void clearAtoms() override { - _definedAtoms.clear(); - _noUndefinedAtoms.clear(); - _noSharedLibraryAtoms.clear(); - _noAbsoluteAtoms.clear(); - } - -private: - AtomVector<DefinedAtom> _definedAtoms; -}; - -} // namespace mach_o -} // namespace lld - -#endif // LLD_READER_WRITER_MACHO_SECTCREATE_FILE_H |
