Fix spell for clang < 7

This commit is contained in:
Fangrui Song 2018-07-16 09:49:32 -07:00
parent 134a09a255
commit d6ce5e6768

View File

@ -569,17 +569,20 @@ public:
const FileEntry *FE; const FileEntry *FE;
Range loc; Range loc;
#if LLVM_VERSION_MAJOR < 7 #if LLVM_VERSION_MAJOR < 7
auto P = SM.getExpansionRange(Loc); CharSourceRange R;
loc = FromCharRange(SM, Ctx->getLangOpts(), SourceRange(P.first, P.second)); if (SM.isMacroArgExpansion(Loc))
LocFID = SM.getFileID(P.first); R = CharSourceRange::getTokenRange(Spell);
FE = SM.getFileEntryForID(LocFID); else {
auto P = SM.getExpansionRange(Loc);
R = CharSourceRange::getTokenRange(P.first, P.second);
}
#else #else
auto R = SM.isMacroArgExpansion(Loc) ? CharSourceRange::getTokenRange(Spell) auto R = SM.isMacroArgExpansion(Loc) ? CharSourceRange::getTokenRange(Spell)
: SM.getExpansionRange(Loc); : SM.getExpansionRange(Loc);
#endif
loc = FromTokenRange(SM, Lang, R.getAsRange()); loc = FromTokenRange(SM, Lang, R.getAsRange());
LocFID = SM.getFileID(R.getBegin()); LocFID = SM.getFileID(R.getBegin());
FE = SM.getFileEntryForID(LocFID); FE = SM.getFileEntryForID(LocFID);
#endif
if (!FE) if (!FE)
return true; return true;
IndexFile *db = param.ConsumeFile(*FE); IndexFile *db = param.ConsumeFile(*FE);