Fix write() when the string being written is larger than the buffer. This broke...
authorOwen Anderson <resistor@mac.com>
Thu, 21 Aug 2008 22:39:33 +0000 (22:39 +0000)
committerOwen Anderson <resistor@mac.com>
Thu, 21 Aug 2008 22:39:33 +0000 (22:39 +0000)
with very long symbol names.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55148 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/raw_ostream.cpp

index b1209a2da7362082fbe5b64148b211d310ca2d46..a5cf629b0718a553f2b387bcc1c2f107067b603c 100644 (file)
@@ -116,6 +116,7 @@ raw_ostream &raw_ostream::write(const char *Ptr, unsigned Size) {
       assert(OutBufCur == OutBufStart);
       memcpy(OutBufStart, Ptr, NumToEmit);
       Ptr += NumToEmit;
+      Size -= NumToEmit;
       OutBufCur = OutBufStart + NumToEmit;
       flush_impl();
     }