LLVM  16.0.0git
Public Member Functions | List of all members
llvm::raw_string_ostream Class Reference

A raw_ostream that writes to an std::string. More...

#include "llvm/Support/raw_ostream.h"

Inheritance diagram for llvm::raw_string_ostream:
Inheritance graph
Collaboration diagram for llvm::raw_string_ostream:
Collaboration graph

Public Member Functions

 raw_string_ostream (std::string &O)
std::string & str ()
 Returns the string's reference. More...
void reserveExtraSpace (uint64_t ExtraSize) override
 If possible, pre-allocate ExtraSize bytes for stream data. More...
- Public Member Functions inherited from llvm::raw_ostream
 raw_ostream (bool unbuffered=false, OStreamKind K=OStreamKind::OK_OStream)
 raw_ostream (const raw_ostream &)=delete
void operator= (const raw_ostream &)=delete
virtual ~raw_ostream ()
uint64_t tell () const
 tell - Return the current offset with the file. More...
OStreamKind get_kind () const
void SetBuffered ()
 Set the stream to be buffered, with an automatically determined buffer size. More...
void SetBufferSize (size_t Size)
 Set the stream to be buffered, using the specified buffer size. More...
size_t GetBufferSize () const
void SetUnbuffered ()
 Set the stream to be unbuffered. More...
size_t GetNumBytesInBuffer () const
void flush ()
raw_ostreamoperator<< (char C)
raw_ostreamoperator<< (unsigned char C)
raw_ostreamoperator<< (signed char C)
raw_ostreamoperator<< (StringRef Str)
raw_ostreamoperator<< (const char *Str)
raw_ostreamoperator<< (const std::string &Str)
raw_ostreamoperator<< (const std::string_view &Str)
raw_ostreamoperator<< (const SmallVectorImpl< char > &Str)
raw_ostreamoperator<< (unsigned long N)
raw_ostreamoperator<< (long N)
raw_ostreamoperator<< (unsigned long long N)
raw_ostreamoperator<< (long long N)
raw_ostreamoperator<< (const void *P)
raw_ostreamoperator<< (unsigned int N)
raw_ostreamoperator<< (int N)
raw_ostreamoperator<< (double N)
raw_ostreamwrite_hex (unsigned long long N)
 Output N in hexadecimal, without any prefix or padding. More...
raw_ostreamoperator<< (Colors C)
raw_ostreamwrite_uuid (const uuid_t UUID)
raw_ostreamwrite_escaped (StringRef Str, bool UseHexEscapes=false)
 Output Str, turning '\', '\t', '
', '"', and anything that doesn't satisfy llvm::isPrint into an escape sequence. More...
raw_ostreamwrite (unsigned char C)
raw_ostreamwrite (const char *Ptr, size_t Size)
raw_ostreamoperator<< (const format_object_base &Fmt)
raw_ostreamoperator<< (const FormattedString &)
raw_ostreamoperator<< (const FormattedNumber &)
raw_ostreamoperator<< (const formatv_object_base &)
raw_ostreamoperator<< (const FormattedBytes &)
raw_ostreamindent (unsigned NumSpaces)
 indent - Insert 'NumSpaces' spaces. More...
raw_ostreamwrite_zeros (unsigned NumZeros)
 write_zeros - Insert 'NumZeros' nulls. More...
virtual raw_ostreamchangeColor (enum Colors Color, bool Bold=false, bool BG=false)
 Changes the foreground color of text that will be output from this point forward. More...
virtual raw_ostreamresetColor ()
 Resets the colors to terminal defaults. More...
virtual raw_ostreamreverseColor ()
 Reverses the foreground and background colors. More...
virtual bool is_displayed () const
 This function determines if this stream is connected to a "tty" or "console" window. More...
virtual bool has_colors () const
 This function determines if this stream is displayed and supports colors. More...
virtual void enable_colors (bool enable)
bool colors_enabled () const
void tie (raw_ostream *TieTo)
 Tie this stream to the specified stream. More...

Additional Inherited Members

- Public Types inherited from llvm::raw_ostream
enum  OStreamKind { OStreamKind::OK_OStream, OStreamKind::OK_FDStream }
enum  Colors {
  Colors::BLACK = 0, Colors::RED, Colors::GREEN, Colors::YELLOW,
  Colors::BLUE, Colors::MAGENTA, Colors::CYAN, Colors::WHITE,
  Colors::SAVEDCOLOR, Colors::RESET
using uuid_t = uint8_t[16]
 Output a formatted UUID with dash separators. More...
- Static Public Attributes inherited from llvm::raw_ostream
static constexpr Colors BLACK = Colors::BLACK
static constexpr Colors RED = Colors::RED
static constexpr Colors GREEN = Colors::GREEN
static constexpr Colors YELLOW = Colors::YELLOW
static constexpr Colors BLUE = Colors::BLUE
static constexpr Colors MAGENTA = Colors::MAGENTA
static constexpr Colors CYAN = Colors::CYAN
static constexpr Colors WHITE = Colors::WHITE
static constexpr Colors SAVEDCOLOR = Colors::SAVEDCOLOR
static constexpr Colors RESET = Colors::RESET
- Protected Member Functions inherited from llvm::raw_ostream
void SetBuffer (char *BufferStart, size_t Size)
 Use the provided buffer as the raw_ostream buffer. More...
virtual size_t preferred_buffer_size () const
 Return an efficient buffer size for the underlying output mechanism. More...
const char * getBufferStart () const
 Return the beginning of the current stream buffer, or 0 if the stream is unbuffered. More...

Detailed Description

A raw_ostream that writes to an std::string.

This is a simple adaptor class. This class does not encounter output errors. raw_string_ostream operates without a buffer, delegating all memory management to the std::string. Thus the std::string is always up-to-date, may be used directly and there is no need to call flush().

Definition at line 629 of file raw_ostream.h.

Constructor & Destructor Documentation

◆ raw_string_ostream()

llvm::raw_string_ostream::raw_string_ostream ( std::string &  O)

Definition at line 640 of file raw_ostream.h.

References llvm::raw_ostream::SetUnbuffered().

Member Function Documentation

◆ reserveExtraSpace()

void llvm::raw_string_ostream::reserveExtraSpace ( uint64_t  ExtraSize)

If possible, pre-allocate ExtraSize bytes for stream data.

i.e. it extends internal buffers to keep additional ExtraSize bytes. So that the stream could keep at least tell() + ExtraSize bytes without re-allocations. reserveExtraSpace() does not change the size/data of the stream.

Reimplemented from llvm::raw_ostream.

Definition at line 649 of file raw_ostream.h.

References llvm::raw_ostream::tell().

◆ str()

std::string& llvm::raw_string_ostream::str ( )

Returns the string's reference.

In most cases it is better to simply use the underlying std::string directly. TODO: Consider removing this API.

Definition at line 647 of file raw_ostream.h.

Referenced by addConstantComments(), llvm::cantFail(), llvm::DWARFContext::checkAddressSizeSupported(), llvm::CompleteNodeLabelString(), llvm::MIRPrinter::convert(), llvm::MIRPrinter::convertMachineMetadataNodes(), llvm::TargetInstrInfo::createMIROperandComment(), llvm::createStringError(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), llvm::embedBitcodeInModule(), llvm::AMDGPUTargetAsmStreamer::EmitHSAMetadata(), emitKill(), llvm::remarks::BitstreamRemarkSerializerHelper::emitMetaStrTab(), llvm::AsmPrinter::emitRemarksSection(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV3::end(), ErrorFromHResult(), llvm::formatCallSiteLocation(), llvm::MCJIT::generateCodeForModule(), llvm::IRChangedPrinter::generateIRRepresentation(), llvm::remarks::Remark::getArgsAsMsg(), llvm::object::MachOObjectFile::getBuildPlatform(), llvm::object::MachOObjectFile::getBuildTool(), llvm::DependenceGraphInfo< NodeType >::getDependenceString(), llvm::DOTGraphTraits< DOTFuncInfo * >::getEdgeSourceLabel(), llvm::json::Path::Root::getError(), llvm::LockFileManager::getErrorMessage(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::DiagnosticInfoOptimizationBase::getMsg(), llvm::Value::getNameOrAsOperand(), llvm::logicalview::LVELFReader::getRegisterName(), getSignature(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), getTypeName(), getTypeString(), llvm::logicalview::hexString(), llvm::isThumbFunc(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), LLVMVerifyModule(), LLVMWriteBitcodeToMemoryBuffer(), llvm::LockFileManager::LockFileManager(), llvm::AsmPrinter::lowerConstant(), llvm::object::makeDuplicateResourceError(), llvm::ErrorInfoBase::message(), llvm::FileError::messageWithoutFileInfo(), llvm::FunctionSummary::FFlags::operator std::string(), llvm::ProfOStream::patch(), llvm::RuntimeDyldELF::processRelocationRef(), raise_relocation_error(), llvm::IRTranslator::runOnMachineFunction(), llvm::SimpleNodeLabelString(), llvm::DenormalMode::str(), false::Chain::str(), stringify(), llvm::TableGenMain(), llvm::to_string(), llvm::RISCVISAInfo::toString(), llvm::msgpack::DocNode::toString(), typeComparisonErrorMessage(), and llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV3::verify().

The documentation for this class was generated from the following files: