LCOV - code coverage report
Current view: top level - lib/Support - circular_raw_ostream.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 0 17 0.0 %
Date: 2017-09-14 15:23:50 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- circular_raw_ostream.cpp - Implement circular_raw_ostream ----------===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This implements support for circular buffered streams.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : #include "llvm/Support/circular_raw_ostream.h"
      15             : #include <algorithm>
      16             : using namespace llvm;
      17             : 
      18           0 : void circular_raw_ostream::write_impl(const char *Ptr, size_t Size) {
      19           0 :   if (BufferSize == 0) {
      20           0 :     TheStream->write(Ptr, Size);
      21           0 :     return;
      22             :   }
      23             : 
      24             :   // Write into the buffer, wrapping if necessary.
      25           0 :   while (Size != 0) {
      26             :     unsigned Bytes =
      27           0 :       std::min(unsigned(Size), unsigned(BufferSize - (Cur - BufferArray)));
      28           0 :     memcpy(Cur, Ptr, Bytes);
      29           0 :     Size -= Bytes;
      30           0 :     Cur += Bytes;
      31           0 :     if (Cur == BufferArray + BufferSize) {
      32             :       // Reset the output pointer to the start of the buffer.
      33           0 :       Cur = BufferArray;
      34           0 :       Filled = true;
      35             :     }
      36             :   }    
      37             : }
      38             : 
      39           0 : void circular_raw_ostream::flushBufferWithBanner() {
      40           0 :   if (BufferSize != 0) {
      41             :     // Write out the buffer
      42           0 :     TheStream->write(Banner, std::strlen(Banner));
      43           0 :     flushBuffer();
      44             :   }
      45           0 : }

Generated by: LCOV version 1.13