Index: tools/llvm-pdbdump/LLVMOutputStyle.cpp =================================================================== --- tools/llvm-pdbdump/LLVMOutputStyle.cpp +++ tools/llvm-pdbdump/LLVMOutputStyle.cpp @@ -303,14 +303,17 @@ recordKnownUsedPage(PS, File.getBlockMapIndex()); // Stream Table - for (auto DB : File.getDirectoryBlockArray()) { + for (auto DB : File.getDirectoryBlockArray()) recordKnownUsedPage(PS, DB); - } - for (auto &SE : File.getStreamMap()) { - for (auto &S : SE) { - recordKnownUsedPage(PS, S); - } - } + + // Record pages used by streams. Note that pages for stream 0 + // are considered being unused because that's what MSVC tools do. + // Stream 0 doesn't contain actual data, so it makes some sense, + // though it's a bit confusing to us. + for (auto &SE : File.getStreamMap()) + for (auto &S : SE) + if (S != 0) + recordKnownUsedPage(PS, S); dumpBitVector("Msf Free Pages", FPM); dumpBitVector("Orphaned Pages", PS.OrphanedPages);