private:
unsigned CurLine;
bool EmittedTokensOnThisLine;
+ bool EmittedMacroOnThisLine;
SrcMgr::CharacteristicKind FileType;
llvm::SmallString<512> CurFilename;
bool Initialized;
CurLine = 0;
CurFilename += "<uninit>";
EmittedTokensOnThisLine = false;
+ EmittedMacroOnThisLine = false;
FileType = SrcMgr::C_User;
Initialized = false;
}
void PrintPPOutputPPCallbacks::WriteLineInfo(unsigned LineNo,
const char *Extra,
unsigned ExtraLen) {
- if (EmittedTokensOnThisLine) {
+ if (EmittedTokensOnThisLine || EmittedMacroOnThisLine) {
OS << '\n';
EmittedTokensOnThisLine = false;
+ EmittedMacroOnThisLine = false;
}
OS << '#' << ' ' << LineNo << ' ' << '"';
CurLine = LineNo;
- if (!EmittedTokensOnThisLine)
+ if (!EmittedTokensOnThisLine && !EmittedMacroOnThisLine)
return true;
OS << '\n';
EmittedTokensOnThisLine = false;
+ EmittedMacroOnThisLine = false;
return true;
}
MoveToLine(MI->getDefinitionLoc());
PrintMacroDefinition(*II, *MI, PP, OS);
+ EmittedMacroOnThisLine = true;
}