From: Craig Topper Date: Sun, 16 Dec 2012 05:58:32 +0000 (+0000) Subject: Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d53c2d30cf89eca5c165d682f6cc1261f54674fd;p=clang Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end of the cache. Fixes PR14570. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170281 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 0c008659df..f1965e7ebd 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -1032,7 +1032,8 @@ unsigned SourceManager::getColumnNumber(FileID FID, unsigned FilePos, // See if we just calculated the line number for this FilePos and can use // that to lookup the start of the line instead of searching for it. if (LastLineNoFileIDQuery == FID && - LastLineNoContentCache->SourceLineCache != 0) { + LastLineNoContentCache->SourceLineCache != 0 && + LastLineNoResult < LastLineNoContentCache->NumLines) { unsigned *SourceLineCache = LastLineNoContentCache->SourceLineCache; unsigned LineStart = SourceLineCache[LastLineNoResult - 1]; unsigned LineEnd = SourceLineCache[LastLineNoResult];