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/DebugInfo/CodeView/SymbolRecordHelpers.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/DebugInfo/CodeView/SymbolRecordHelpers.cpp')
| -rw-r--r-- | gnu/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/gnu/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp b/gnu/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp deleted file mode 100644 index 01746138ad1..00000000000 --- a/gnu/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//===- SymbolRecordHelpers.cpp ----------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/DebugInfo/CodeView/SymbolRecordHelpers.h" - -#include "llvm/ADT/SmallVector.h" -#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h" - -using namespace llvm; -using namespace llvm::codeview; - -template <typename RecordT> RecordT createRecord(const CVSymbol &sym) { - RecordT record(static_cast<SymbolRecordKind>(sym.kind())); - cantFail(SymbolDeserializer::deserializeAs<RecordT>(sym, record)); - return record; -} - -uint32_t llvm::codeview::getScopeEndOffset(const CVSymbol &Sym) { - assert(symbolOpensScope(Sym.kind())); - switch (Sym.kind()) { - case SymbolKind::S_GPROC32: - case SymbolKind::S_LPROC32: - case SymbolKind::S_GPROC32_ID: - case SymbolKind::S_LPROC32_ID: - case SymbolKind::S_LPROC32_DPC: - case SymbolKind::S_LPROC32_DPC_ID: { - ProcSym Proc = createRecord<ProcSym>(Sym); - return Proc.End; - } - case SymbolKind::S_BLOCK32: { - BlockSym Block = createRecord<BlockSym>(Sym); - return Block.End; - } - case SymbolKind::S_THUNK32: { - Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); - return Thunk.End; - } - case SymbolKind::S_INLINESITE: { - InlineSiteSym Site = createRecord<InlineSiteSym>(Sym); - return Site.End; - } - default: - assert(false && "Unknown record type"); - return 0; - } -} - -uint32_t -llvm::codeview::getScopeParentOffset(const llvm::codeview::CVSymbol &Sym) { - assert(symbolOpensScope(Sym.kind())); - switch (Sym.kind()) { - case SymbolKind::S_GPROC32: - case SymbolKind::S_LPROC32: - case SymbolKind::S_GPROC32_ID: - case SymbolKind::S_LPROC32_ID: - case SymbolKind::S_LPROC32_DPC: - case SymbolKind::S_LPROC32_DPC_ID: { - ProcSym Proc = createRecord<ProcSym>(Sym); - return Proc.Parent; - } - case SymbolKind::S_BLOCK32: { - BlockSym Block = createRecord<BlockSym>(Sym); - return Block.Parent; - } - case SymbolKind::S_THUNK32: { - Thunk32Sym Thunk = createRecord<Thunk32Sym>(Sym); - return Thunk.Parent; - } - case SymbolKind::S_INLINESITE: { - InlineSiteSym Site = createRecord<InlineSiteSym>(Sym); - return Site.Parent; - } - default: - assert(false && "Unknown record type"); - return 0; - } -} - -CVSymbolArray -llvm::codeview::limitSymbolArrayToScope(const CVSymbolArray &Symbols, - uint32_t ScopeBegin) { - CVSymbol Opener = *Symbols.at(ScopeBegin); - assert(symbolOpensScope(Opener.kind())); - uint32_t EndOffset = getScopeEndOffset(Opener); - CVSymbol Closer = *Symbols.at(EndOffset); - EndOffset += Closer.RecordData.size(); - return Symbols.substream(ScopeBegin, EndOffset); -} |
