[llvm-commits] CVS: llvm/include/llvm/Support/ConstantRange.h Debug.h Streams.h

Bill Wendling isanbard at gmail.com
Sat Dec 16 21:15:50 PST 2006



Changes in directory llvm/include/llvm/Support:

ConstantRange.h updated: 1.11 -> 1.12
Debug.h updated: 1.12 -> 1.13
Streams.h updated: 1.6 -> 1.7
---
Log message:

Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


---
Diffs of the changes:  (+11 -6)

 ConstantRange.h |    4 +---
 Debug.h         |    4 ++--
 Streams.h       |    9 ++++++++-
 3 files changed, 11 insertions(+), 6 deletions(-)


Index: llvm/include/llvm/Support/ConstantRange.h
diff -u llvm/include/llvm/Support/ConstantRange.h:1.11 llvm/include/llvm/Support/ConstantRange.h:1.12
--- llvm/include/llvm/Support/ConstantRange.h:1.11	Wed Dec  6 19:30:31 2006
+++ llvm/include/llvm/Support/ConstantRange.h	Sat Dec 16 23:15:12 2006
@@ -141,10 +141,8 @@
 
   /// print - Print out the bounds to a stream...
   ///
-  void print(OStream &OS) const {
-    if (OS.stream()) print(*OS.stream());
-  }
   void print(std::ostream &OS) const;
+  void print(std::ostream *OS) const { if (OS) print(*OS); }
 
   /// dump - Allow printing from a debugger easily...
   ///


Index: llvm/include/llvm/Support/Debug.h
diff -u llvm/include/llvm/Support/Debug.h:1.12 llvm/include/llvm/Support/Debug.h:1.13
--- llvm/include/llvm/Support/Debug.h:1.12	Wed Dec  6 19:30:31 2006
+++ llvm/include/llvm/Support/Debug.h	Sat Dec 16 23:15:12 2006
@@ -65,10 +65,10 @@
 /// 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);
+OStream &getErrorOutputStream(const char *DebugType);
 
 #ifdef NDEBUG
-#define DOUT NullStream
+#define DOUT cnull
 #else
 #define DOUT getErrorOutputStream(DEBUG_TYPE)
 #endif


Index: llvm/include/llvm/Support/Streams.h
diff -u llvm/include/llvm/Support/Streams.h:1.6 llvm/include/llvm/Support/Streams.h:1.7
--- llvm/include/llvm/Support/Streams.h:1.6	Thu Dec  7 17:41:45 2006
+++ llvm/include/llvm/Support/Streams.h	Sat Dec 16 23:15:12 2006
@@ -39,6 +39,11 @@
       return *this;
     }
 
+//     inline BaseStream &operator << (std::ios &(*Func)(std::ios&)) {
+//       if (Stream) *Stream << Func;
+//       return *this;
+//     }
+      
     template <typename Ty>
     BaseStream &operator << (const Ty &Thing) {
       if (Stream) *Stream << Thing;
@@ -51,6 +56,8 @@
       return *this;
     }
 
+    operator StreamTy* () { return Stream; }
+
     bool operator == (const StreamTy &S) { return &S == Stream; }
     bool operator != (const StreamTy &S) { return !(*this == S); }
     bool operator == (const BaseStream &S) { return S.Stream == Stream; }
@@ -61,7 +68,7 @@
   typedef BaseStream<std::istream> IStream;
   typedef BaseStream<std::stringstream> StringStream;
 
-  extern OStream NullStream;
+  extern OStream cnull;
   extern OStream cout;
   extern OStream cerr;
   extern IStream cin;






More information about the llvm-commits mailing list