[PDB] Write public symbol records and the publics hash table
Summary:
MSVC link.exe records all external symbol names in the publics stream.
It provides similar functionality to an ELF .symtab.
Reviewers: zturner, ruiu
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D35871
llvm-svn: 309303
diff --git a/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
index 9f35fd7..21e5e4b 100644
--- a/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
@@ -212,8 +212,11 @@
if (Publics) {
auto PS = WritableMappedBlockStream::createIndexedStream(
Layout, Buffer, Publics->getStreamIndex(), Allocator);
+ auto PRS = WritableMappedBlockStream::createIndexedStream(
+ Layout, Buffer, Publics->getRecordStreamIdx(), Allocator);
BinaryStreamWriter PSWriter(*PS);
- if (auto EC = Publics->commit(PSWriter))
+ BinaryStreamWriter RecWriter(*PRS);
+ if (auto EC = Publics->commit(PSWriter, RecWriter))
return EC;
}