diff --git a/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h b/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h index 9b93efef560..d0f87540993 100644 --- a/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h +++ b/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h @@ -49,7 +49,7 @@ public: Expected> build(PDBFile &File, const msf::WritableStream &Buffer); Error commit(const msf::MSFLayout &Layout, - const msf::WritableStream &Buffer) const; + const msf::WritableStream &Buffer); private: Error finalize(); diff --git a/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp b/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp index 711295da91b..b0bb4a0e164 100644 --- a/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp +++ b/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp @@ -249,7 +249,10 @@ DbiStreamBuilder::build(PDBFile &File, const msf::WritableStream &Buffer) { } Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout, - const msf::WritableStream &Buffer) const { + const msf::WritableStream &Buffer) { + if (auto EC = finalize()) + return EC; + auto InfoS = WritableMappedBlockStream::createIndexedStream(Layout, Buffer, StreamDBI); diff --git a/test/DebugInfo/PDB/pdbdump-readwrite.test b/test/DebugInfo/PDB/pdbdump-readwrite.test new file mode 100644 index 00000000000..e533ab71267 --- /dev/null +++ b/test/DebugInfo/PDB/pdbdump-readwrite.test @@ -0,0 +1,4 @@ +; RUN: llvm-pdbdump pdb2yaml -dbi-module-info -dbi-module-source-info \ +; RUN: -dbi-stream -pdb-stream -stream-directory -stream-metadata \ +; RUN: %p/Inputs/empty.pdb > %t.1 +; RUN: llvm-pdbdump yaml2pdb -pdb=%t.2 %t.1