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`).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230873 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith 2015-02-28 22:16:56 +00:00
parent 45909778e7
commit 9973291e83

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;