xref: /freebsd/contrib/llvm-project/llvm/lib/Support/raw_os_ostream.cpp (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
1*0b57cec5SDimitry Andric //===--- raw_os_ostream.cpp - Implement the raw_os_ostream class ----------===//
2*0b57cec5SDimitry Andric //
3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0b57cec5SDimitry Andric //
7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
8*0b57cec5SDimitry Andric //
9*0b57cec5SDimitry Andric // This implements support adapting raw_ostream to std::ostream.
10*0b57cec5SDimitry Andric //
11*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
12*0b57cec5SDimitry Andric 
13*0b57cec5SDimitry Andric #include "llvm/Support/raw_os_ostream.h"
14*0b57cec5SDimitry Andric #include <ostream>
15*0b57cec5SDimitry Andric using namespace llvm;
16*0b57cec5SDimitry Andric 
17*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
18*0b57cec5SDimitry Andric //  raw_os_ostream
19*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
20*0b57cec5SDimitry Andric 
~raw_os_ostream()21*0b57cec5SDimitry Andric raw_os_ostream::~raw_os_ostream() {
22*0b57cec5SDimitry Andric   flush();
23*0b57cec5SDimitry Andric }
24*0b57cec5SDimitry Andric 
write_impl(const char * Ptr,size_t Size)25*0b57cec5SDimitry Andric void raw_os_ostream::write_impl(const char *Ptr, size_t Size) {
26*0b57cec5SDimitry Andric   OS.write(Ptr, Size);
27*0b57cec5SDimitry Andric }
28*0b57cec5SDimitry Andric 
current_pos() const29*0b57cec5SDimitry Andric uint64_t raw_os_ostream::current_pos() const { return OS.tellp(); }
30