summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/CodeView/StringTable.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-05-30 17:13:33 +0000
committerZachary Turner <zturner@google.com>2017-05-30 17:13:33 +0000
commit591312c5c1a133949285dde012d8cf373ab31b12 (patch)
tree018149cd6fdc99281c57823add5f228604dbaa93 /llvm/lib/DebugInfo/CodeView/StringTable.cpp
parent5fd588be34ce1fe53e88590c8a8781ec973f45a0 (diff)
downloadbcm5719-llvm-591312c5c1a133949285dde012d8cf373ab31b12.tar.gz
bcm5719-llvm-591312c5c1a133949285dde012d8cf373ab31b12.zip
[CodeView] Add more DebugSubsection implementations.
This adds implementations for Symbols and FrameData, and renames the existing codeview::StringTable class to conform to the DebugSectionStringTable convention. llvm-svn: 304222
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/StringTable.cpp')
-rw-r--r--llvm/lib/DebugInfo/CodeView/StringTable.cpp71
1 files changed, 0 insertions, 71 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/StringTable.cpp b/llvm/lib/DebugInfo/CodeView/StringTable.cpp
deleted file mode 100644
index 21f11204686..00000000000
--- a/llvm/lib/DebugInfo/CodeView/StringTable.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//===- StringTable.cpp - CodeView String Table Reader/Writer ----*- 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/StringTable.h"
-
-#include "llvm/Support/BinaryStream.h"
-#include "llvm/Support/BinaryStreamReader.h"
-#include "llvm/Support/BinaryStreamWriter.h"
-
-using namespace llvm;
-using namespace llvm::codeview;
-
-StringTableRef::StringTableRef() {}
-
-Error StringTableRef::initialize(BinaryStreamRef Contents) {
- Stream = Contents;
- return Error::success();
-}
-
-Expected<StringRef> StringTableRef::getString(uint32_t Offset) const {
- BinaryStreamReader Reader(Stream);
- Reader.setOffset(Offset);
- StringRef Result;
- if (auto EC = Reader.readCString(Result))
- return std::move(EC);
- return Result;
-}
-
-uint32_t StringTable::insert(StringRef S) {
- auto P = Strings.insert({S, StringSize});
-
- // If a given string didn't exist in the string table, we want to increment
- // the string table size.
- if (P.second)
- StringSize += S.size() + 1; // +1 for '\0'
- return P.first->second;
-}
-
-uint32_t StringTable::calculateSerializedSize() const { return StringSize; }
-
-Error StringTable::commit(BinaryStreamWriter &Writer) const {
- assert(Writer.bytesRemaining() == StringSize);
- uint32_t MaxOffset = 1;
-
- for (auto &Pair : Strings) {
- StringRef S = Pair.getKey();
- uint32_t Offset = Pair.getValue();
- Writer.setOffset(Offset);
- if (auto EC = Writer.writeCString(S))
- return EC;
- MaxOffset = std::max<uint32_t>(MaxOffset, Offset + S.size() + 1);
- }
-
- Writer.setOffset(MaxOffset);
- assert(Writer.bytesRemaining() == 0);
- return Error::success();
-}
-
-uint32_t StringTable::size() const { return Strings.size(); }
-
-uint32_t StringTable::getStringId(StringRef S) const {
- auto P = Strings.find(S);
- assert(P != Strings.end());
- return P->second;
-}
OpenPOWER on IntegriCloud