[Support] json::OStream::flush(), which passes through to the underlying stream

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359190 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Support/JSON.h b/include/llvm/Support/JSON.h
index ebda4e8..fb6a6d4 100644
--- a/include/llvm/Support/JSON.h
+++ b/include/llvm/Support/JSON.h
@@ -751,7 +751,6 @@
 class OStream {
  public:
   using Block = llvm::function_ref<void()>;
-  // OStream does not buffer internally, and need never be flushed or destroyed.
   // If IndentSize is nonzero, output is pretty-printed.
   explicit OStream(llvm::raw_ostream &OS, unsigned IndentSize = 0)
       : OS(OS), IndentSize(IndentSize) {
@@ -763,6 +762,9 @@
     assert(Stack.back().HasValue && "Did not write top-level value");
   }
 
+  /// Flushes the underlying ostream. OStream does not buffer internally.
+  void flush() { OS.flush(); }
+
   // High level functions to output a value.
   // Valid at top-level (exactly once), in an attribute value (exactly once),
   // or in an array (any number of times).