OSDN Git Service

Fix a bug in DbiStreamBuilder::addDbgStream.
authorRui Ueyama <ruiu@google.com>
Mon, 10 Oct 2016 23:44:04 +0000 (23:44 +0000)
committerRui Ueyama <ruiu@google.com>
Mon, 10 Oct 2016 23:44:04 +0000 (23:44 +0000)
This feature will be tested in LLD unit tests.

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

include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h
lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp

index 72abba8..52b6b87 100644 (file)
@@ -101,7 +101,8 @@ private:
   msf::WritableStreamRef NamesBuffer;
   msf::MutableByteStream ModInfoBuffer;
   msf::MutableByteStream FileInfoBuffer;
-  llvm::SmallVector<DebugStream, (int)DbgHeaderType::Max> DbgStreams;
+  llvm::SmallVector<DebugStream, (int)DbgHeaderType::Max> DbgStreams{
+      (int)DbgHeaderType::Max};
 };
 }
 }
index f76cb6a..55c3c0a 100644 (file)
@@ -46,7 +46,7 @@ void DbiStreamBuilder::setMachineType(PDB_Machine M) { MachineType = M; }
 
 Error DbiStreamBuilder::addDbgStream(pdb::DbgHeaderType Type,
                                      ArrayRef<uint8_t> Data) {
-  if (DbgStreams[(int)Type].StreamNumber == kInvalidStreamIndex)
+  if (DbgStreams[(int)Type].StreamNumber != kInvalidStreamIndex)
     return make_error<RawError>(raw_error_code::duplicate_entry,
                                 "The specified stream type already exists");
   auto ExpectedIndex = Msf.addStream(Data.size());