Merge pull request #33370 from bitjammer/acgarland/rdar-65258208-crash-invalid-loc-extracttext

[SymbolGraph] Check Loc validity before extracting text
This commit is contained in:
AG
2020-08-10 11:56:53 -07:00
committed by GitHub
3 changed files with 19 additions and 1 deletions

View File

@@ -685,7 +685,7 @@ bool SemaAnnotator::
passReference(ValueDecl *D, Type Ty, DeclNameLoc Loc, ReferenceMetaData Data) {
SourceManager &SM = D->getASTContext().SourceMgr;
SourceLoc BaseStart = Loc.getBaseNameLoc(), BaseEnd = BaseStart;
if (SM.extractText({BaseStart, 1}) == "`")
if (BaseStart.isValid() && SM.extractText({BaseStart, 1}) == "`")
BaseEnd = Lexer::getLocForEndOfToken(SM, BaseStart.getAdvancedLoc(1));
return passReference(D, Ty, BaseStart, {BaseStart, BaseEnd}, Data);
}