diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Object/Object.cpp | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/lib/Object/Object.cpp')
| -rw-r--r-- | gnu/llvm/lib/Object/Object.cpp | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/gnu/llvm/lib/Object/Object.cpp b/gnu/llvm/lib/Object/Object.cpp deleted file mode 100644 index f5de2e1d5ce..00000000000 --- a/gnu/llvm/lib/Object/Object.cpp +++ /dev/null @@ -1,240 +0,0 @@ -//===- Object.cpp - C bindings to the object file library--------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file defines the C bindings to the file-format-independent object -// library. -// -//===----------------------------------------------------------------------===// - -#include "llvm-c/Object.h" -#include "llvm/ADT/SmallVector.h" -#include "llvm/Object/ObjectFile.h" - -using namespace llvm; -using namespace object; - -inline OwningBinary<ObjectFile> *unwrap(LLVMObjectFileRef OF) { - return reinterpret_cast<OwningBinary<ObjectFile> *>(OF); -} - -inline LLVMObjectFileRef wrap(const OwningBinary<ObjectFile> *OF) { - return reinterpret_cast<LLVMObjectFileRef>( - const_cast<OwningBinary<ObjectFile> *>(OF)); -} - -inline section_iterator *unwrap(LLVMSectionIteratorRef SI) { - return reinterpret_cast<section_iterator*>(SI); -} - -inline LLVMSectionIteratorRef -wrap(const section_iterator *SI) { - return reinterpret_cast<LLVMSectionIteratorRef> - (const_cast<section_iterator*>(SI)); -} - -inline symbol_iterator *unwrap(LLVMSymbolIteratorRef SI) { - return reinterpret_cast<symbol_iterator*>(SI); -} - -inline LLVMSymbolIteratorRef -wrap(const symbol_iterator *SI) { - return reinterpret_cast<LLVMSymbolIteratorRef> - (const_cast<symbol_iterator*>(SI)); -} - -inline relocation_iterator *unwrap(LLVMRelocationIteratorRef SI) { - return reinterpret_cast<relocation_iterator*>(SI); -} - -inline LLVMRelocationIteratorRef -wrap(const relocation_iterator *SI) { - return reinterpret_cast<LLVMRelocationIteratorRef> - (const_cast<relocation_iterator*>(SI)); -} - -// ObjectFile creation -LLVMObjectFileRef LLVMCreateObjectFile(LLVMMemoryBufferRef MemBuf) { - std::unique_ptr<MemoryBuffer> Buf(unwrap(MemBuf)); - Expected<std::unique_ptr<ObjectFile>> ObjOrErr( - ObjectFile::createObjectFile(Buf->getMemBufferRef())); - std::unique_ptr<ObjectFile> Obj; - if (!ObjOrErr) { - // TODO: Actually report errors helpfully. - consumeError(ObjOrErr.takeError()); - return nullptr; - } - - auto *Ret = new OwningBinary<ObjectFile>(std::move(ObjOrErr.get()), std::move(Buf)); - return wrap(Ret); -} - -void LLVMDisposeObjectFile(LLVMObjectFileRef ObjectFile) { - delete unwrap(ObjectFile); -} - -// ObjectFile Section iterators -LLVMSectionIteratorRef LLVMGetSections(LLVMObjectFileRef OF) { - OwningBinary<ObjectFile> *OB = unwrap(OF); - section_iterator SI = OB->getBinary()->section_begin(); - return wrap(new section_iterator(SI)); -} - -void LLVMDisposeSectionIterator(LLVMSectionIteratorRef SI) { - delete unwrap(SI); -} - -LLVMBool LLVMIsSectionIteratorAtEnd(LLVMObjectFileRef OF, - LLVMSectionIteratorRef SI) { - OwningBinary<ObjectFile> *OB = unwrap(OF); - return (*unwrap(SI) == OB->getBinary()->section_end()) ? 1 : 0; -} - -void LLVMMoveToNextSection(LLVMSectionIteratorRef SI) { - ++(*unwrap(SI)); -} - -void LLVMMoveToContainingSection(LLVMSectionIteratorRef Sect, - LLVMSymbolIteratorRef Sym) { - Expected<section_iterator> SecOrErr = (*unwrap(Sym))->getSection(); - if (!SecOrErr) { - std::string Buf; - raw_string_ostream OS(Buf); - logAllUnhandledErrors(SecOrErr.takeError(), OS); - OS.flush(); - report_fatal_error(Buf); - } - *unwrap(Sect) = *SecOrErr; -} - -// ObjectFile Symbol iterators -LLVMSymbolIteratorRef LLVMGetSymbols(LLVMObjectFileRef OF) { - OwningBinary<ObjectFile> *OB = unwrap(OF); - symbol_iterator SI = OB->getBinary()->symbol_begin(); - return wrap(new symbol_iterator(SI)); -} - -void LLVMDisposeSymbolIterator(LLVMSymbolIteratorRef SI) { - delete unwrap(SI); -} - -LLVMBool LLVMIsSymbolIteratorAtEnd(LLVMObjectFileRef OF, - LLVMSymbolIteratorRef SI) { - OwningBinary<ObjectFile> *OB = unwrap(OF); - return (*unwrap(SI) == OB->getBinary()->symbol_end()) ? 1 : 0; -} - -void LLVMMoveToNextSymbol(LLVMSymbolIteratorRef SI) { - ++(*unwrap(SI)); -} - -// SectionRef accessors -const char *LLVMGetSectionName(LLVMSectionIteratorRef SI) { - StringRef ret; - if (std::error_code ec = (*unwrap(SI))->getName(ret)) - report_fatal_error(ec.message()); - return ret.data(); -} - -uint64_t LLVMGetSectionSize(LLVMSectionIteratorRef SI) { - return (*unwrap(SI))->getSize(); -} - -const char *LLVMGetSectionContents(LLVMSectionIteratorRef SI) { - StringRef ret; - if (std::error_code ec = (*unwrap(SI))->getContents(ret)) - report_fatal_error(ec.message()); - return ret.data(); -} - -uint64_t LLVMGetSectionAddress(LLVMSectionIteratorRef SI) { - return (*unwrap(SI))->getAddress(); -} - -LLVMBool LLVMGetSectionContainsSymbol(LLVMSectionIteratorRef SI, - LLVMSymbolIteratorRef Sym) { - return (*unwrap(SI))->containsSymbol(**unwrap(Sym)); -} - -// Section Relocation iterators -LLVMRelocationIteratorRef LLVMGetRelocations(LLVMSectionIteratorRef Section) { - relocation_iterator SI = (*unwrap(Section))->relocation_begin(); - return wrap(new relocation_iterator(SI)); -} - -void LLVMDisposeRelocationIterator(LLVMRelocationIteratorRef SI) { - delete unwrap(SI); -} - -LLVMBool LLVMIsRelocationIteratorAtEnd(LLVMSectionIteratorRef Section, - LLVMRelocationIteratorRef SI) { - return (*unwrap(SI) == (*unwrap(Section))->relocation_end()) ? 1 : 0; -} - -void LLVMMoveToNextRelocation(LLVMRelocationIteratorRef SI) { - ++(*unwrap(SI)); -} - - -// SymbolRef accessors -const char *LLVMGetSymbolName(LLVMSymbolIteratorRef SI) { - Expected<StringRef> Ret = (*unwrap(SI))->getName(); - if (!Ret) { - std::string Buf; - raw_string_ostream OS(Buf); - logAllUnhandledErrors(Ret.takeError(), OS); - OS.flush(); - report_fatal_error(Buf); - } - return Ret->data(); -} - -uint64_t LLVMGetSymbolAddress(LLVMSymbolIteratorRef SI) { - Expected<uint64_t> Ret = (*unwrap(SI))->getAddress(); - if (!Ret) { - std::string Buf; - raw_string_ostream OS(Buf); - logAllUnhandledErrors(Ret.takeError(), OS); - OS.flush(); - report_fatal_error(Buf); - } - return *Ret; -} - -uint64_t LLVMGetSymbolSize(LLVMSymbolIteratorRef SI) { - return (*unwrap(SI))->getCommonSize(); -} - -// RelocationRef accessors -uint64_t LLVMGetRelocationOffset(LLVMRelocationIteratorRef RI) { - return (*unwrap(RI))->getOffset(); -} - -LLVMSymbolIteratorRef LLVMGetRelocationSymbol(LLVMRelocationIteratorRef RI) { - symbol_iterator ret = (*unwrap(RI))->getSymbol(); - return wrap(new symbol_iterator(ret)); -} - -uint64_t LLVMGetRelocationType(LLVMRelocationIteratorRef RI) { - return (*unwrap(RI))->getType(); -} - -// NOTE: Caller takes ownership of returned string. -const char *LLVMGetRelocationTypeName(LLVMRelocationIteratorRef RI) { - SmallVector<char, 0> ret; - (*unwrap(RI))->getTypeName(ret); - char *str = static_cast<char*>(safe_malloc(ret.size())); - llvm::copy(ret, str); - return str; -} - -// NOTE: Caller takes ownership of returned string. -const char *LLVMGetRelocationValueString(LLVMRelocationIteratorRef RI) { - return strdup(""); -} - |
