Improve macro dumping to preserve semantically-relevant spelling information.
llvm-svn: 252206
This commit is contained in:
parent
2a7a94a655
commit
85f93f34cb
|
@ -154,16 +154,20 @@ void MacroInfo::dump() const {
|
|||
Out << ")";
|
||||
}
|
||||
|
||||
bool First = true;
|
||||
for (const Token &Tok : ReplacementTokens) {
|
||||
Out << " ";
|
||||
// Leading space is semantically meaningful in a macro definition,
|
||||
// so preserve it in the dump output.
|
||||
if (First || Tok.hasLeadingSpace())
|
||||
Out << " ";
|
||||
First = false;
|
||||
|
||||
if (const char *Punc = tok::getPunctuatorSpelling(Tok.getKind()))
|
||||
Out << Punc;
|
||||
else if (const char *Kwd = tok::getKeywordSpelling(Tok.getKind()))
|
||||
Out << Kwd;
|
||||
else if (Tok.is(tok::identifier))
|
||||
Out << Tok.getIdentifierInfo()->getName();
|
||||
else if (Tok.isLiteral() && Tok.getLiteralData())
|
||||
Out << StringRef(Tok.getLiteralData(), Tok.getLength());
|
||||
else if (auto *II = Tok.getIdentifierInfo())
|
||||
Out << II->getName();
|
||||
else
|
||||
Out << Tok.getName();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue