OSDN Git Service

[codeview] Move StreamInterface and StreamReader to libcodeview.
authorZachary Turner <zturner@google.com>
Wed, 25 May 2016 20:37:03 +0000 (20:37 +0000)
committerZachary Turner <zturner@google.com>
Wed, 25 May 2016 20:37:03 +0000 (20:37 +0000)
We have need to reuse this functionality, including making
additional generic stream types that are smarter about how and
when they copy memory versus referencing the original memory.
So all of these structures belong in the common library
rather than being pdb specific.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270751 91177308-0d34-0410-b5e6-96231b3b80d8

26 files changed:
include/llvm/DebugInfo/CodeView/ByteStream.h [moved from include/llvm/DebugInfo/PDB/Raw/ByteStream.h with 86% similarity]
include/llvm/DebugInfo/CodeView/CodeViewError.h [new file with mode: 0644]
include/llvm/DebugInfo/CodeView/StreamInterface.h [moved from include/llvm/DebugInfo/PDB/Raw/StreamInterface.h with 74% similarity]
include/llvm/DebugInfo/CodeView/StreamReader.h [moved from include/llvm/DebugInfo/PDB/Raw/StreamReader.h with 76% similarity]
include/llvm/DebugInfo/PDB/Raw/DbiStream.h
include/llvm/DebugInfo/PDB/Raw/MappedBlockStream.h
include/llvm/DebugInfo/PDB/Raw/ModStream.h
include/llvm/DebugInfo/PDB/Raw/NameHashTable.h
include/llvm/DebugInfo/PDB/Raw/NameMap.h
include/llvm/DebugInfo/PDB/Raw/PublicsStream.h
include/llvm/DebugInfo/PDB/Raw/SymbolStream.h
include/llvm/DebugInfo/PDB/Raw/TpiStream.h
lib/DebugInfo/CodeView/ByteStream.cpp [moved from lib/DebugInfo/PDB/Raw/ByteStream.cpp with 84% similarity]
lib/DebugInfo/CodeView/CMakeLists.txt
lib/DebugInfo/CodeView/CodeViewError.cpp [new file with mode: 0644]
lib/DebugInfo/CodeView/StreamReader.cpp [moved from lib/DebugInfo/PDB/Raw/StreamReader.cpp with 90% similarity]
lib/DebugInfo/PDB/CMakeLists.txt
lib/DebugInfo/PDB/Raw/DbiStream.cpp
lib/DebugInfo/PDB/Raw/InfoStream.cpp
lib/DebugInfo/PDB/Raw/ModStream.cpp
lib/DebugInfo/PDB/Raw/NameHashTable.cpp
lib/DebugInfo/PDB/Raw/NameMap.cpp
lib/DebugInfo/PDB/Raw/PublicsStream.cpp
lib/DebugInfo/PDB/Raw/SymbolStream.cpp
lib/DebugInfo/PDB/Raw/TpiStream.cpp
tools/llvm-pdbdump/llvm-pdbdump.cpp

similarity index 86%
rename from include/llvm/DebugInfo/PDB/Raw/ByteStream.h
rename to include/llvm/DebugInfo/CodeView/ByteStream.h
index 843e43c..9d683b1 100644 (file)
@@ -7,19 +7,18 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
-#define LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
+#ifndef LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
+#define LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
+#include "llvm/DebugInfo/CodeView/StreamInterface.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <memory>
 
 namespace llvm {
-namespace pdb {
-
+namespace codeview {
 class StreamReader;
 
 class ByteStream : public StreamInterface {
@@ -53,4 +52,4 @@ private:
 } // end namespace pdb
 } // end namespace llvm
 
-#endif // LLVM_DEBUGINFO_PDB_RAW_BYTESTREAM_H
+#endif // LLVM_DEBUGINFO_CODEVIEW_BYTESTREAM_H
diff --git a/include/llvm/DebugInfo/CodeView/CodeViewError.h b/include/llvm/DebugInfo/CodeView/CodeViewError.h
new file mode 100644 (file)
index 0000000..a3d4171
--- /dev/null
@@ -0,0 +1,43 @@
+//===- CodeViewError.h - Error extensions for CodeView ----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_PDB_CODEVIEW_CODEVIEWERROR_H
+#define LLVM_DEBUGINFO_PDB_CODEVIEW_CODEVIEWERROR_H
+
+#include "llvm/Support/Error.h"
+
+#include <string>
+
+namespace llvm {
+namespace codeview {
+enum class cv_error_code {
+  unspecified = 1,
+  insufficient_buffer,
+  corrupt_record,
+};
+
+/// Base class for errors originating when parsing raw PDB files
+class CodeViewError : public ErrorInfo<CodeViewError> {
+public:
+  static char ID;
+  CodeViewError(cv_error_code C);
+  CodeViewError(const std::string &Context);
+  CodeViewError(cv_error_code C, const std::string &Context);
+
+  void log(raw_ostream &OS) const override;
+  const std::string &getErrorMessage() const;
+  std::error_code convertToErrorCode() const override;
+
+private:
+  std::string ErrMsg;
+  cv_error_code Code;
+};
+}
+}
+#endif
@@ -1,4 +1,4 @@
-//===- StreamInterface.h - Base interface for a PDB stream ------*- C++ -*-===//
+//===- StreamInterface.h - Base interface for a stream of data --*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,15 +7,15 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
-#define LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
+#ifndef LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
+#define LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
 namespace llvm {
-namespace pdb {
+namespace codeview {
 
 class StreamInterface {
 public:
@@ -29,7 +29,7 @@ public:
   virtual uint32_t getLength() const = 0;
 };
 
-} // end namespace pdb
+} // end namespace codeview
 } // end namespace llvm
 
-#endif // LLVM_DEBUGINFO_PDB_RAW_STREAMINTERFACE_H
+#endif // LLVM_DEBUGINFO_CODEVIEW_STREAMINTERFACE_H
@@ -7,19 +7,19 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_DEBUGINFO_PDB_RAW_STREAMREADER_H
-#define LLVM_DEBUGINFO_PDB_RAW_STREAMREADER_H
+#ifndef LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
+#define LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
 
 #include "llvm/ADT/ArrayRef.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
+#include "llvm/DebugInfo/CodeView/StreamInterface.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 
 #include <string>
 
 namespace llvm {
-namespace pdb {
-class StreamInterface;
+namespace codeview {
+
 class StreamReader {
 public:
   StreamReader(const StreamInterface &S);
@@ -35,7 +35,8 @@ public:
   }
 
   template <typename T> Error readArray(MutableArrayRef<T> Array) {
-    MutableArrayRef<uint8_t> Casted(reinterpret_cast<uint8_t*>(Array.data()), Array.size() * sizeof(T));
+    MutableArrayRef<uint8_t> Casted(reinterpret_cast<uint8_t *>(Array.data()),
+                                    Array.size() * sizeof(T));
     return readBytes(Casted);
   }
 
@@ -50,7 +51,7 @@ private:
   const StreamInterface &Stream;
   uint32_t Offset;
 };
-}
-}
+} // namespace codeview
+} // namespace llvm
 
-#endif
+#endif // LLVM_DEBUGINFO_CODEVIEW_STREAMREADER_H
index 33ac97a..91de6e6 100644 (file)
@@ -10,8 +10,8 @@
 #ifndef LLVM_DEBUGINFO_PDB_RAW_PDBDBISTREAM_H
 #define LLVM_DEBUGINFO_PDB_RAW_PDBDBISTREAM_H
 
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
 #include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
@@ -62,13 +62,13 @@ private:
   std::vector<ModuleInfoEx> ModuleInfos;
   NameHashTable ECNames;
 
-  ByteStream ModInfoSubstream;
-  ByteStream SecContrSubstream;
-  ByteStream SecMapSubstream;
-  ByteStream FileInfoSubstream;
-  ByteStream TypeServerMapSubstream;
-  ByteStream ECSubstream;
-  ByteStream DbgHeader;
+  codeview::ByteStream ModInfoSubstream;
+  codeview::ByteStream SecContrSubstream;
+  codeview::ByteStream SecMapSubstream;
+  codeview::ByteStream FileInfoSubstream;
+  codeview::ByteStream TypeServerMapSubstream;
+  codeview::ByteStream ECSubstream;
+  codeview::ByteStream DbgHeader;
 
   std::unique_ptr<HeaderInfo> Header;
 };
index 2b475e4..72f8b0c 100644 (file)
@@ -11,7 +11,7 @@
 #define LLVM_DEBUGINFO_PDB_RAW_MAPPEDBLOCKSTREAM_H
 
 #include "llvm/ADT/ArrayRef.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamInterface.h"
+#include "llvm/DebugInfo/CodeView/StreamInterface.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
@@ -21,7 +21,7 @@ namespace pdb {
 
 class PDBFile;
 
-class MappedBlockStream : public StreamInterface {
+class MappedBlockStream : public codeview::StreamInterface {
 public:
   MappedBlockStream(uint32_t StreamIdx, const PDBFile &File);
 
index 82042e5..3f2b904 100644 (file)
@@ -11,8 +11,8 @@
 #define LLVM_DEBUGINFO_PDB_RAW_MODSTREAM_H
 
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/Support/Error.h"
 
@@ -35,10 +35,10 @@ private:
 
   MappedBlockStream Stream;
 
-  ByteStream SymbolsSubstream;
-  ByteStream LinesSubstream;
-  ByteStream C13LinesSubstream;
-  ByteStream GlobalRefsSubstream;
+  codeview::ByteStream SymbolsSubstream;
+  codeview::ByteStream LinesSubstream;
+  codeview::ByteStream C13LinesSubstream;
+  codeview::ByteStream GlobalRefsSubstream;
 };
 }
 }
index 62c1e20..daaa40d 100644 (file)
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
 
 namespace llvm {
-namespace pdb {
-
+namespace codeview {
 class StreamReader;
+}
+namespace pdb {
 
 class NameHashTable {
 public:
   NameHashTable();
 
-  Error load(StreamReader &Stream);
+  Error load(codeview::StreamReader &Stream);
 
   uint32_t getNameCount() const { return NameCount; }
   uint32_t getHashVersion() const { return HashVersion; }
@@ -38,7 +39,7 @@ public:
   ArrayRef<uint32_t> name_ids() const;
 
 private:
-  ByteStream NamesBuffer;
+  codeview::ByteStream NamesBuffer;
   std::vector<uint32_t> IDs;
   uint32_t Signature;
   uint32_t HashVersion;
index b832976..e124eef 100644 (file)
 #include <cstdint>
 
 namespace llvm {
-namespace pdb {
-
+namespace codeview {
 class StreamReader;
+}
+namespace pdb {
 
 class NameMap {
 public:
   NameMap();
 
-  Error load(StreamReader &Stream);
+  Error load(codeview::StreamReader &Stream);
 
   bool tryGetValue(StringRef Name, uint32_t &Value) const;
 
index 088bcb4..f1d6be5 100644 (file)
@@ -13,7 +13,6 @@
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
 #include "llvm/DebugInfo/CodeView/TypeStream.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 
index 590fed7..bb5f418 100644 (file)
@@ -10,8 +10,8 @@
 #ifndef LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H
 #define LLVM_DEBUGINFO_PDB_RAW_PDBSYMBOLSTREAM_H
 
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 
 #include "llvm/Support/Error.h"
@@ -29,7 +29,7 @@ public:
   iterator_range<codeview::SymbolIterator> getSymbols() const;
 
 private:
-  ByteStream Stream;
+  codeview::ByteStream Stream;
   MappedBlockStream MappedStream;
 };
 }
index bca34c4..91dd891 100644 (file)
@@ -10,9 +10,9 @@
 #ifndef LLVM_DEBUGINFO_PDB_RAW_PDBTPISTREAM_H
 #define LLVM_DEBUGINFO_PDB_RAW_PDBTPISTREAM_H
 
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
 #include "llvm/DebugInfo/CodeView/TypeStream.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 
@@ -47,10 +47,10 @@ private:
   MappedBlockStream Stream;
   HashFunctionType HashFunction;
 
-  ByteStream RecordsBuffer;
-  ByteStream TypeIndexOffsetBuffer;
-  ByteStream HashValuesBuffer;
-  ByteStream HashAdjBuffer;
+  codeview::ByteStream RecordsBuffer;
+  codeview::ByteStream TypeIndexOffsetBuffer;
+  codeview::ByteStream HashValuesBuffer;
+  codeview::ByteStream HashAdjBuffer;
 
   std::unique_ptr<HeaderInfo> Header;
 };
similarity index 84%
rename from lib/DebugInfo/PDB/Raw/ByteStream.cpp
rename to lib/DebugInfo/CodeView/ByteStream.cpp
index 09b51d9..879343a 100644 (file)
@@ -7,13 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
-#include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
+#include "llvm/DebugInfo/CodeView/ByteStream.h"
+#include "llvm/DebugInfo/CodeView/CodeViewError.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include <cstring>
 
 using namespace llvm;
-using namespace llvm::pdb;
+using namespace llvm::codeview;
 
 ByteStream::ByteStream() {}
 
@@ -51,7 +51,7 @@ Error ByteStream::initialize(StreamReader &Reader, uint32_t Length) {
 Error ByteStream::readBytes(uint32_t Offset,
                             MutableArrayRef<uint8_t> Buffer) const {
   if (Data.size() < Buffer.size() + Offset)
-    return make_error<RawError>(raw_error_code::insufficient_buffer);
+    return make_error<CodeViewError>(cv_error_code::insufficient_buffer);
   ::memcpy(Buffer.data(), Data.data() + Offset, Buffer.size());
   return Error::success();
 }
@@ -59,7 +59,7 @@ Error ByteStream::readBytes(uint32_t Offset,
 Error ByteStream::getArrayRef(uint32_t Offset, ArrayRef<uint8_t> &Buffer,
                               uint32_t Length) const {
   if (Data.size() < Length + Offset)
-    return make_error<RawError>(raw_error_code::insufficient_buffer);
+    return make_error<CodeViewError>(cv_error_code::insufficient_buffer);
   Buffer = Data.slice(Offset, Length);
   return Error::success();
 }
index e0c7119..8e7628d 100644 (file)
@@ -1,10 +1,13 @@
 add_llvm_library(LLVMDebugInfoCodeView
+  ByteStream.cpp
+  CodeViewError.cpp
   FieldListRecordBuilder.cpp
   Line.cpp
   ListRecordBuilder.cpp
   MemoryTypeTableBuilder.cpp
   MethodListRecordBuilder.cpp
   RecordSerialization.cpp
+  StreamReader.cpp
   SymbolDumper.cpp
   TypeDumper.cpp
   TypeRecord.cpp
diff --git a/lib/DebugInfo/CodeView/CodeViewError.cpp b/lib/DebugInfo/CodeView/CodeViewError.cpp
new file mode 100644 (file)
index 0000000..4db6b29
--- /dev/null
@@ -0,0 +1,65 @@
+//===- CodeViewError.cpp - Error extensions for CodeView --------*- 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/CodeViewError.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/ManagedStatic.h"
+
+using namespace llvm;
+using namespace llvm::codeview;
+
+namespace {
+// FIXME: This class is only here to support the transition to llvm::Error. It
+// will be removed once this transition is complete. Clients should prefer to
+// deal with the Error value directly, rather than converting to error_code.
+class CodeViewErrorCategory : public std::error_category {
+public:
+  const char *name() const LLVM_NOEXCEPT override { return "llvm.codeview"; }
+
+  std::string message(int Condition) const override {
+    switch (static_cast<cv_error_code>(Condition)) {
+    case cv_error_code::unspecified:
+      return "An unknown error has occurred.";
+    case cv_error_code::insufficient_buffer:
+      return "The buffer is not large enough to read the requested number of "
+             "bytes.";
+    case cv_error_code::corrupt_record:
+      return "The CodeView record is corrupted.";
+    }
+    llvm_unreachable("Unrecognized cv_error_code");
+  }
+};
+} // end anonymous namespace
+
+static ManagedStatic<CodeViewErrorCategory> Category;
+
+char CodeViewError::ID = 0;
+
+CodeViewError::CodeViewError(cv_error_code C) : CodeViewError(C, "") {}
+
+CodeViewError::CodeViewError(const std::string &Context)
+    : CodeViewError(cv_error_code::unspecified, Context) {}
+
+CodeViewError::CodeViewError(cv_error_code C, const std::string &Context)
+    : Code(C) {
+  ErrMsg = "CodeView Error: ";
+  std::error_code EC = convertToErrorCode();
+  if (Code != cv_error_code::unspecified)
+    ErrMsg += EC.message() + "  ";
+  if (!Context.empty())
+    ErrMsg += Context;
+}
+
+void CodeViewError::log(raw_ostream &OS) const { OS << ErrMsg << "\n"; }
+
+const std::string &CodeViewError::getErrorMessage() const { return ErrMsg; }
+
+std::error_code CodeViewError::convertToErrorCode() const {
+  return std::error_code(static_cast<int>(Code), *Category);
+}
similarity index 90%
rename from lib/DebugInfo/PDB/Raw/StreamReader.cpp
rename to lib/DebugInfo/CodeView/StreamReader.cpp
index ed9c9d4..8a2926b 100644 (file)
@@ -7,11 +7,12 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
-#include "llvm/DebugInfo/PDB/Raw/RawError.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
+
+#include "llvm/DebugInfo/CodeView/CodeViewError.h"
 
 using namespace llvm;
-using namespace llvm::pdb;
+using namespace llvm::codeview;
 
 StreamReader::StreamReader(const StreamInterface &S) : Stream(S), Offset(0) {}
 
index b5053c5..113a2ad 100644 (file)
@@ -28,7 +28,6 @@ if(HAVE_DIA_SDK)
 endif()
 
 add_pdb_impl_folder(Raw
-  Raw/ByteStream.cpp
   Raw/DbiStream.cpp
   Raw/InfoStream.cpp
   Raw/MappedBlockStream.cpp
@@ -40,7 +39,6 @@ add_pdb_impl_folder(Raw
   Raw/PublicsStream.cpp
   Raw/RawError.cpp
   Raw/RawSession.cpp
-  Raw/StreamReader.cpp
   Raw/SymbolStream.cpp
   Raw/TpiStream.cpp)
 
index 6b5cd21..078384e 100644 (file)
@@ -9,13 +9,13 @@
 
 #include "llvm/DebugInfo/PDB/Raw/DbiStream.h"
 
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/InfoStream.h"
 #include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
 #include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
 #include "llvm/DebugInfo/PDB/Raw/PDBFile.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
@@ -80,7 +80,7 @@ DbiStream::DbiStream(PDBFile &File) : Pdb(File), Stream(StreamDBI, File) {
 DbiStream::~DbiStream() {}
 
 Error DbiStream::reload() {
-  StreamReader Reader(Stream);
+  codeview::StreamReader Reader(Stream);
 
   Header.reset(new HeaderInfo());
 
@@ -170,7 +170,7 @@ Error DbiStream::reload() {
     return make_error<RawError>(raw_error_code::corrupt_file,
                                 "Found unexpected bytes in DBI Stream.");
 
-  StreamReader ECReader(ECSubstream);
+  codeview::StreamReader ECReader(ECSubstream);
   if (auto EC = ECNames.load(ECReader))
     return EC;
 
index ccc4a5e..e7c8a83 100644 (file)
@@ -10,9 +10,9 @@
 #include "llvm/DebugInfo/PDB/Raw/InfoStream.h"
 #include "llvm/ADT/BitVector.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
@@ -20,7 +20,7 @@ using namespace llvm::pdb;
 InfoStream::InfoStream(PDBFile &File) : Pdb(File), Stream(StreamPDB, File) {}
 
 Error InfoStream::reload() {
-  StreamReader Reader(Stream);
+  codeview::StreamReader Reader(Stream);
 
   struct Header {
     support::ulittle32_t Version;
index dfc7bfc..c359e77 100644 (file)
@@ -8,9 +8,10 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DebugInfo/PDB/Raw/ModStream.h"
+
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/ModInfo.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
@@ -21,7 +22,7 @@ ModStream::ModStream(PDBFile &File, const ModInfo &Module)
 ModStream::~ModStream() {}
 
 Error ModStream::reload() {
-  StreamReader Reader(Stream);
+  codeview::StreamReader Reader(Stream);
 
   uint32_t SymbolSize = Mod.getSymbolDebugInfoByteSize();
   uint32_t C11Size = Mod.getLineInfoByteSize();
index 2005c39..a542a51 100644 (file)
@@ -10,9 +10,8 @@
 #include "llvm/DebugInfo/PDB/Raw/NameHashTable.h"
 
 #include "llvm/ADT/ArrayRef.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 #include "llvm/Support/Endian.h"
 
 using namespace llvm;
@@ -78,7 +77,7 @@ static inline uint32_t HashStringV2(StringRef Str) {
 
 NameHashTable::NameHashTable() : Signature(0), HashVersion(0), NameCount(0) {}
 
-Error NameHashTable::load(StreamReader &Stream) {
+Error NameHashTable::load(codeview::StreamReader &Stream) {
   struct Header {
     support::ulittle32_t Signature;
     support::ulittle32_t HashVersion;
index 202e717..777d932 100644 (file)
@@ -9,15 +9,15 @@
 
 #include "llvm/DebugInfo/PDB/Raw/NameMap.h"
 #include "llvm/ADT/BitVector.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
 
 NameMap::NameMap() {}
 
-Error NameMap::load(StreamReader &Stream) {
+Error NameMap::load(codeview::StreamReader &Stream) {
 
   // This is some sort of weird string-set/hash table encoded in the stream.
   // It starts with the number of bytes in the table.
index af3cff3..db66f53 100644 (file)
 #include "llvm/DebugInfo/PDB/Raw/PublicsStream.h"
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/PDBFile.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/SymbolStream.h"
 
 #include "llvm/ADT/BitVector.h"
@@ -99,7 +99,7 @@ uint32_t PublicsStream::getAddrMap() const { return Header->AddrMap; }
 // we skip over the hash table which we believe contains information about
 // public symbols.
 Error PublicsStream::reload() {
-  StreamReader Reader(Stream);
+  codeview::StreamReader Reader(Stream);
 
   // Check stream size.
   if (Reader.bytesRemaining() < sizeof(HeaderInfo) + sizeof(GSIHashHeader))
index 6249524..2037a64 100644 (file)
 #include "llvm/DebugInfo/PDB/Raw/SymbolStream.h"
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
-#include "llvm/DebugInfo/PDB/Raw/ByteStream.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 #include "llvm/Support/Endian.h"
 
@@ -29,7 +28,7 @@ SymbolStream::SymbolStream(PDBFile &File, uint32_t StreamNum)
 SymbolStream::~SymbolStream() {}
 
 Error SymbolStream::reload() {
-  StreamReader Reader(MappedStream);
+  codeview::StreamReader Reader(MappedStream);
 
   if (Stream.initialize(Reader, MappedStream.getLength()))
     return make_error<RawError>(raw_error_code::corrupt_file,
index 8ce8c01..99daf6e 100644 (file)
 #include "llvm/DebugInfo/PDB/Raw/TpiStream.h"
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
 #include "llvm/DebugInfo/PDB/Raw/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Raw/RawConstants.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 
 #include "llvm/Support/Endian.h"
 
@@ -62,7 +62,7 @@ TpiStream::TpiStream(PDBFile &File, uint32_t StreamIdx)
 TpiStream::~TpiStream() {}
 
 Error TpiStream::reload() {
-  StreamReader Reader(Stream);
+  codeview::StreamReader Reader(Stream);
 
   if (Reader.bytesRemaining() < sizeof(HeaderInfo))
     return make_error<RawError>(raw_error_code::corrupt_file,
@@ -98,7 +98,7 @@ Error TpiStream::reload() {
 
   // Hash indices, hash values, etc come from the hash stream.
   MappedBlockStream HS(Header->HashStreamIndex, Pdb);
-  StreamReader HSR(HS);
+  codeview::StreamReader HSR(HS);
   HSR.setOffset(Header->HashValueBuffer.Off);
   if (auto EC =
           HashValuesBuffer.initialize(HSR, Header->HashValueBuffer.Length))
index 4c0c057..9c33a00 100644 (file)
@@ -26,6 +26,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/Config/config.h"
+#include "llvm/DebugInfo/CodeView/StreamReader.h"
 #include "llvm/DebugInfo/CodeView/SymbolDumper.h"
 #include "llvm/DebugInfo/CodeView/TypeDumper.h"
 #include "llvm/DebugInfo/PDB/GenericError.h"
@@ -48,7 +49,6 @@
 #include "llvm/DebugInfo/PDB/Raw/PublicsStream.h"
 #include "llvm/DebugInfo/PDB/Raw/RawError.h"
 #include "llvm/DebugInfo/PDB/Raw/RawSession.h"
-#include "llvm/DebugInfo/PDB/Raw/StreamReader.h"
 #include "llvm/DebugInfo/PDB/Raw/TpiStream.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/ConvertUTF.h"
@@ -343,7 +343,7 @@ static Error dumpStreamData(ScopedPrinter &P, PDBFile &File) {
     return Error::success();
 
   MappedBlockStream S(DumpStreamNum, File);
-  StreamReader R(S);
+  codeview::StreamReader R(S);
   while (R.bytesRemaining() > 0) {
     ArrayRef<uint8_t> Data;
     uint32_t BytesToReadInBlock = std::min(
@@ -393,7 +393,7 @@ static Error dumpNamedStream(ScopedPrinter &P, PDBFile &File) {
     P.printNumber("Index", NameStreamIndex);
 
     MappedBlockStream NameStream(NameStreamIndex, File);
-    StreamReader Reader(NameStream);
+    codeview::StreamReader Reader(NameStream);
 
     NameHashTable NameTable;
     if (auto EC = NameTable.load(Reader))