[cfe-commits] [PATCH] [Valgrind] Don't read beyond SourceLineCache

NAKAMURA Takumi geek4civic at gmail.com
Fri Dec 14 08:56:08 PST 2012


Hi doug.gregor,

It fixes dozen of failures with --vg.

I have no idea whether it would be right thing. Or, in ComputeLineNumbers(), should LineOffsets have a sentinel in its tail?

http://llvm-reviews.chandlerc.com/D217

Files:
  clang/lib/Basic/SourceManager.cpp

Index: clang/lib/Basic/SourceManager.cpp
===================================================================
--- clang/lib/Basic/SourceManager.cpp
+++ clang/lib/Basic/SourceManager.cpp
@@ -1032,6 +1032,7 @@
   // 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 &&
+      LastLineNoResult < LastLineNoContentCache->NumLines &&
       LastLineNoContentCache->SourceLineCache != 0) {
     unsigned *SourceLineCache = LastLineNoContentCache->SourceLineCache;
     unsigned LineStart = SourceLineCache[LastLineNoResult - 1];
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D217.1.patch
Type: text/x-patch
Size: 651 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121214/503298fd/attachment.bin>


More information about the cfe-commits mailing list