Create FileOutputBuffer lazily.

So that it is clear that FileOutputBuffer does not depend on
PDB file builder. Eventually we will have to to get the file size
info from the file builder to create a file with the exact size.
NFC.

llvm-svn: 282454
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp
index 2859c27..dd02a5a 100644
--- a/lld/COFF/PDB.cpp
+++ b/lld/COFF/PDB.cpp
@@ -33,14 +33,6 @@
 const int BlockSize = 4096;
 
 void coff::createPDB(StringRef Path) {
-  // Create a file.
-  size_t FileSize = BlockSize * 10;
-  auto BufferOrErr = FileOutputBuffer::create(Path, FileSize);
-  if (auto EC = BufferOrErr.getError())
-    fatal(EC, "failed to open " + Path);
-  auto FileByteStream =
-      llvm::make_unique<msf::FileBufferByteStream>(std::move(*BufferOrErr));
-
   // Create the superblock.
   msf::SuperBlock SB;
   memcpy(SB.MagicBytes, msf::Magic, sizeof(msf::Magic));
@@ -76,6 +68,12 @@
   auto &TpiBuilder = Builder.getTpiBuilder();
   TpiBuilder.setVersionHeader(pdb::PdbTpiV80);
 
-  // Write the root directory. Root stream is on page 2.
+  // Write to a file.
+  size_t FileSize = BlockSize * 10;
+  auto BufferOrErr = FileOutputBuffer::create(Path, FileSize);
+  if (auto EC = BufferOrErr.getError())
+    fatal(EC, "failed to open " + Path);
+  auto FileByteStream =
+      llvm::make_unique<msf::FileBufferByteStream>(std::move(*BufferOrErr));
   ExitOnErr(Builder.commit(*FileByteStream));
 }