mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-01 09:18:30 +00:00
allow default construction of formatted_raw_ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75674 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5473f07314
commit
4a18d2f1cc
@ -35,7 +35,7 @@ namespace llvm
|
|||||||
private:
|
private:
|
||||||
/// TheStream - The real stream we output to.
|
/// TheStream - The real stream we output to.
|
||||||
///
|
///
|
||||||
raw_ostream &TheStream;
|
raw_ostream *TheStream;
|
||||||
/// DeleteStream - Do we need to delete TheStream in the
|
/// DeleteStream - Do we need to delete TheStream in the
|
||||||
/// destructor?
|
/// destructor?
|
||||||
///
|
///
|
||||||
@ -48,7 +48,7 @@ namespace llvm
|
|||||||
|
|
||||||
virtual void write_impl(const char *Ptr, unsigned Size) {
|
virtual void write_impl(const char *Ptr, unsigned Size) {
|
||||||
ComputeColumn(Ptr, Size);
|
ComputeColumn(Ptr, Size);
|
||||||
TheStream.write(Ptr, Size);
|
TheStream->write(Ptr, Size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// current_pos - Return the current position within the stream,
|
/// current_pos - Return the current position within the stream,
|
||||||
@ -56,7 +56,7 @@ namespace llvm
|
|||||||
virtual uint64_t current_pos() {
|
virtual uint64_t current_pos() {
|
||||||
// This has the same effect as calling TheStream.current_pos(),
|
// This has the same effect as calling TheStream.current_pos(),
|
||||||
// but that interface is private.
|
// but that interface is private.
|
||||||
return TheStream.tell() - TheStream.GetNumBytesInBuffer();
|
return TheStream->tell() - TheStream->GetNumBytesInBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// ComputeColumn - Examine the current output and figure out
|
/// ComputeColumn - Examine the current output and figure out
|
||||||
@ -75,12 +75,19 @@ namespace llvm
|
|||||||
/// \param Binary - The file should be opened in binary mode on
|
/// \param Binary - The file should be opened in binary mode on
|
||||||
/// platforms that support this distinction.
|
/// platforms that support this distinction.
|
||||||
formatted_raw_ostream(raw_ostream &Stream, bool Delete = false)
|
formatted_raw_ostream(raw_ostream &Stream, bool Delete = false)
|
||||||
: raw_ostream(), TheStream(Stream), DeleteStream(Delete), Column(0) {}
|
: raw_ostream(), TheStream(&Stream), DeleteStream(Delete), Column(0) {}
|
||||||
|
explicit formatted_raw_ostream()
|
||||||
|
: raw_ostream(), TheStream(0), DeleteStream(false), Column(0) {}
|
||||||
|
|
||||||
~formatted_raw_ostream() {
|
~formatted_raw_ostream() {
|
||||||
if (DeleteStream)
|
if (DeleteStream)
|
||||||
delete &TheStream;
|
delete &TheStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setStream(raw_ostream &Stream, bool Delete = false) {
|
||||||
|
TheStream = &Stream;
|
||||||
|
DeleteStream = Delete;
|
||||||
|
}
|
||||||
|
|
||||||
/// PadToColumn - Align the output to some column number.
|
/// PadToColumn - Align the output to some column number.
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user