]> granicus.if.org Git - clang/commitdiff
Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end...
authorCraig Topper <craig.topper@gmail.com>
Sun, 16 Dec 2012 05:58:32 +0000 (05:58 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sun, 16 Dec 2012 05:58:32 +0000 (05:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170281 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/SourceManager.cpp

index 0c008659df6138734b215fc88c5d84d58612e2da..f1965e7ebda5567920a811c46113d030fb1186b7 100644 (file)
@@ -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];