diff options
author | Chris Lattner <sabre@nondot.org> | 2009-08-24 04:02:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-08-24 04:02:06 +0000 |
commit | 32e1eef631fb275c9db580d80116d1110c3ae5ee (patch) | |
tree | 7418845548c1a253fbda30d0eb9fa64f7eeded36 | |
parent | 23132b188ba651ba172380cd082cc286df73d440 (diff) | |
download | llvm-32e1eef631fb275c9db580d80116d1110c3ae5ee.tar.gz llvm-32e1eef631fb275c9db580d80116d1110c3ae5ee.tar.bz2 llvm-32e1eef631fb275c9db580d80116d1110c3ae5ee.tar.xz |
split raw_os_ostream out to its own header and implementation file. This
means that raw_ostream no longer has to #include <iosfwd>. Nothing in llvm
should use raw_os_ostream.h, but llvm-gcc and some unit tests do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79886 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/raw_os_ostream.h | 42 | ||||
-rw-r--r-- | include/llvm/Support/raw_ostream.h | 19 | ||||
-rw-r--r-- | lib/Support/raw_os_ostream.cpp | 30 | ||||
-rw-r--r-- | lib/Support/raw_ostream.cpp | 14 | ||||
-rw-r--r-- | unittests/ADT/APIntTest.cpp | 2 | ||||
-rw-r--r-- | unittests/Support/ConstantRangeTest.cpp | 2 |
6 files changed, 74 insertions, 35 deletions
diff --git a/include/llvm/Support/raw_os_ostream.h b/include/llvm/Support/raw_os_ostream.h new file mode 100644 index 0000000000..e0978b238e --- /dev/null +++ b/include/llvm/Support/raw_os_ostream.h @@ -0,0 +1,42 @@ +//===- raw_os_ostream.h - std::ostream adaptor for raw_ostream --*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the raw_os_ostream class. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_SUPPORT_RAW_OS_OSTREAM_H +#define LLVM_SUPPORT_RAW_OS_OSTREAM_H + +#include "llvm/Support/raw_ostream.h" +#include <iosfwd> + +namespace llvm { + +/// raw_os_ostream - A raw_ostream that writes to an std::ostream. This is a +/// simple adaptor class. It does not check for output errors; clients should +/// use the underlying stream to detect errors. +class raw_os_ostream : public raw_ostream { + std::ostream &OS; + + /// write_impl - See raw_ostream::write_impl. + virtual void write_impl(const char *Ptr, size_t Size); + + /// current_pos - Return the current position within the stream, not + /// counting the bytes currently in the buffer. + virtual uint64_t current_pos(); + +public: + raw_os_ostream(std::ostream &O) : OS(O) {} + ~raw_os_ostream(); +}; + +} // end llvm namespace + +#endif diff --git a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h index 0a5019edcd..e9e2379bf7 100644 --- a/include/llvm/Support/raw_ostream.h +++ b/include/llvm/Support/raw_ostream.h @@ -15,7 +15,6 @@ #define LLVM_SUPPORT_RAW_OSTREAM_H #include "llvm/ADT/StringRef.h" -#include <iosfwd> namespace llvm { class format_object_base; @@ -407,24 +406,6 @@ raw_ostream &nulls(); // Output Stream Adaptors //===----------------------------------------------------------------------===// -/// raw_os_ostream - A raw_ostream that writes to an std::ostream. This is a -/// simple adaptor class. It does not check for output errors; clients should -/// use the underlying stream to detect errors. -class raw_os_ostream : public raw_ostream { - std::ostream &OS; - - /// write_impl - See raw_ostream::write_impl. - virtual void write_impl(const char *Ptr, size_t Size); - - /// current_pos - Return the current position within the stream, not - /// counting the bytes currently in the buffer. - virtual uint64_t current_pos(); - -public: - raw_os_ostream(std::ostream &O) : OS(O) {} - ~raw_os_ostream(); -}; - /// raw_string_ostream - A raw_ostream that writes to an std::string. This is a /// simple adaptor class. This class does not encounter output errors. class raw_string_ostream : public raw_ostream { diff --git a/lib/Support/raw_os_ostream.cpp b/lib/Support/raw_os_ostream.cpp new file mode 100644 index 0000000000..3374dd7a66 --- /dev/null +++ b/lib/Support/raw_os_ostream.cpp @@ -0,0 +1,30 @@ +//===--- raw_os_ostream.cpp - Implement the raw_os_ostream class ----------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This implements support adapting raw_ostream to std::ostream. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/raw_os_ostream.h" +#include <ostream> +using namespace llvm; + +//===----------------------------------------------------------------------===// +// raw_os_ostream +//===----------------------------------------------------------------------===// + +raw_os_ostream::~raw_os_ostream() { + flush(); +} + +void raw_os_ostream::write_impl(const char *Ptr, size_t Size) { + OS.write(Ptr, Size); +} + +uint64_t raw_os_ostream::current_pos() { return OS.tellp(); } diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp index 4dd891d64f..0736a85eec 100644 --- a/lib/Support/raw_ostream.cpp +++ b/lib/Support/raw_ostream.cpp @@ -20,7 +20,6 @@ #include "llvm/Support/Compiler.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/ADT/StringExtras.h" -#include <ostream> #include <sys/stat.h> #include <sys/types.h> @@ -485,19 +484,6 @@ raw_ostream &llvm::nulls() { return S; } -//===----------------------------------------------------------------------===// -// raw_os_ostream -//===----------------------------------------------------------------------===// - -raw_os_ostream::~raw_os_ostream() { - flush(); -} - -void raw_os_ostream::write_impl(const char *Ptr, size_t Size) { - OS.write(Ptr, Size); -} - -uint64_t raw_os_ostream::current_pos() { return OS.tellp(); } //===----------------------------------------------------------------------===// // raw_string_ostream diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index 3fd4fd4c30..415f192f98 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// #include <ostream> -#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/raw_os_ostream.h" #include "gtest/gtest.h" #include "llvm/ADT/APInt.h" #include "llvm/ADT/SmallString.h" diff --git a/unittests/Support/ConstantRangeTest.cpp b/unittests/Support/ConstantRangeTest.cpp index 56f315a09a..937b8805cf 100644 --- a/unittests/Support/ConstantRangeTest.cpp +++ b/unittests/Support/ConstantRangeTest.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/ConstantRange.h" -#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/raw_os_ostream.h" #include "gtest/gtest.h" |