* Make contained ostream not public.
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 28 Apr 2004 19:22:58 +0000 (19:22 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 28 Apr 2004 19:22:58 +0000 (19:22 +0000)
* Remove various print methods that called the Value* method, just have one that
  all subclasses of Value will use anyway.
* Remove template for printing constant references
* Add methods to print char* and strings
* setStream now sets the stream on the contained AssemblyWriter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13246 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Assembly/CachedWriter.h

index 0808600d683ebd9e5479d6a9bf7a66c1550b5da4..27193e7c8dbfa1c737951edc5a4c35003493ad00 100644 (file)
@@ -31,15 +31,14 @@ class CachedWriter {
   AssemblyWriter *AW;
   SlotCalculator *SC;
   bool SymbolicTypes;
-public:
   std::ostream *Out;
 
+public:
   enum TypeWriter {
     SymTypeOn,
     SymTypeOff
   };
 
-public:
   CachedWriter(std::ostream &O = std::cout)
     : AW(0), SC(0), SymbolicTypes(false), Out(&O) { }
   CachedWriter(const Module *M, std::ostream &O = std::cout)
@@ -53,27 +52,10 @@ public:
 
   CachedWriter &operator<<(const Value *V);
 
-  inline CachedWriter &operator<<(Value *X) {
-    return *this << (const Value*)X;
-  }
-  inline CachedWriter &operator<<(const GlobalVariable *X) {
-    return *this << (const Value*)X;
-  }
-  inline CachedWriter &operator<<(const Function *X) {
-    return *this << (const Value*)X;
-  }
-  inline CachedWriter &operator<<(const Argument *X) {
-    return *this << (const Value*)X;
-  }
-  inline CachedWriter &operator<<(const BasicBlock *X) {
-    return *this << (const Value*)X;
-  }
-  inline CachedWriter &operator<<(const Instruction *X) {
-    return *this << (const Value*)X; 
-  }
-  inline CachedWriter &operator<<(const Constant *X) {
-    return *this << (const Value*)X; 
+  inline CachedWriter &operator<<(const Value &X) {
+    return *this << &X;
   }
+
   CachedWriter &operator<<(const Type *X);
   inline CachedWriter &operator<<(const PointerType *X);
 
@@ -81,9 +63,12 @@ public:
     *Out << Manip; return *this;
   }
 
-  template<class X>
-  inline CachedWriter &operator<<(const X &v) {
-    *Out << v;
+  inline CachedWriter& operator<<(const char *X) {
+    *Out << X;
+    return *this;
+  }
+  inline CachedWriter& operator<<(const std::string &X) {
+    *Out << X;
     return *this;
   }
 
@@ -93,7 +78,7 @@ public:
   }
 
   inline std::ostream& getStream() { return *Out; }
-  inline void setStream(std::ostream &os) { Out = &os; }
+  void setStream(std::ostream &os);
 };
 
 } // End llvm namespace