//
// The LLVM Compiler Infrastructure
//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
-// This file implements a handle way of adding debugging information to your
+// This file implements a handy way of adding debugging information to your
// code, without it being enabled all of the time, and without having to add
// command line options to enable it.
//
#ifndef LLVM_SUPPORT_DEBUG_H
#define LLVM_SUPPORT_DEBUG_H
-#include <ostream> // Doesn't have static d'tors!!
+#include "llvm/Support/Streams.h"
namespace llvm {
do { if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) { X; } } while (0)
#endif
-// llvm_ostream - Acts like an ostream. However, it doesn't print things out if
-// an ostream isn't specified.
-//
-class llvm_ostream {
- std::ostream* Stream;
-public:
- llvm_ostream() : Stream(0) {}
- llvm_ostream(std::ostream& OStream) : Stream(&OStream) {}
-
- template <typename Ty>
- llvm_ostream& operator << (const Ty& Thing) {
- if (Stream) *Stream << Thing;
- return *this;
- }
-};
-
-// getErrorOutputStream - Returns the error output stream (std::cerr). This
-// places the std::c* I/O streams into one .cpp file and relieves the whole
-// program from having to have hundreds of static c'tor/d'tors for them.
-//
-llvm_ostream getErrorOutputStream(const char *DebugType);
+/// getErrorOutputStream - Returns the error output stream (std::cerr). This
+/// places the std::c* I/O streams into one .cpp file and relieves the whole
+/// program from having to have hundreds of static c'tor/d'tors for them.
+///
+OStream &getErrorOutputStream(const char *DebugType);
#ifdef NDEBUG
-#define DOUT llvm_ostream()
+#define DOUT llvm::OStream(0)
#else
-#define DOUT getErrorOutputStream(DEBUG_TYPE)
+#define DOUT llvm::getErrorOutputStream(DEBUG_TYPE)
#endif
} // End llvm namespace