AsmWriter: Extract writeStringField(), NFCI

Extract logic for escaping a string field in the new debug info
hierarchy from `GenericDebugNode`.  A follow-up commit will use it far
more widely (hence the dead code for `ShouldSkipEmpty`).

llvm-svn: 230873
This commit is contained in:
Duncan P. N. Exon Smith 2015-02-28 22:16:56 +00:00
parent 3a46c142bf
commit 79cf9705c7
1 changed files with 12 additions and 5 deletions

View File

@ -1306,17 +1306,24 @@ static void writeTag(raw_ostream &Out, FieldSeparator &FS, const DebugNode *N) {
Out << N->getTag();
}
static void writeStringField(raw_ostream &Out, FieldSeparator &FS,
StringRef Name, StringRef Value,
bool ShouldSkipEmpty = true) {
if (ShouldSkipEmpty && Value.empty())
return;
Out << FS << Name << ": \"";
PrintEscapedString(Value, Out);
Out << "\"";
}
static void writeGenericDebugNode(raw_ostream &Out, const GenericDebugNode *N,
TypePrinting *TypePrinter,
SlotTracker *Machine, const Module *Context) {
Out << "!GenericDebugNode(";
FieldSeparator FS;
writeTag(Out, FS, N);
if (!N->getHeader().empty()) {
Out << FS << "header: \"";
PrintEscapedString(N->getHeader(), Out);
Out << "\"";
}
writeStringField(Out, FS, "header", N->getHeader());
if (N->getNumDwarfOperands()) {
Out << FS << "operands: {";
FieldSeparator IFS;