* Make contained ostream not public.

* 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
This commit is contained in:
Misha Brukman 2004-04-28 19:22:58 +00:00
parent 8618e52be5
commit df3d2e95a2

View 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