]> granicus.if.org Git - clang/commitdiff
Fix broken reading of "#lines" from PCH.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 2 Jul 2010 11:55:05 +0000 (11:55 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 2 Jul 2010 11:55:05 +0000 (11:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107470 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/PCHReader.cpp

index b5ddc86369dc21a573a0b917fb087e9b05148d8f..be763d51ca960a2e9601fc71e731bb4bb679585a 100644 (file)
@@ -659,16 +659,17 @@ bool PCHReader::ParseLineTable(llvm::SmallVectorImpl<uint64_t> &Record) {
   // Parse the line entries
   std::vector<LineEntry> Entries;
   while (Idx < Record.size()) {
-    int FID = FileIDs[Record[Idx++]];
+    int FID = Record[Idx++];
 
     // Extract the line entries
     unsigned NumEntries = Record[Idx++];
+    assert(NumEntries && "Numentries is 00000");
     Entries.clear();
     Entries.reserve(NumEntries);
     for (unsigned I = 0; I != NumEntries; ++I) {
       unsigned FileOffset = Record[Idx++];
       unsigned LineNo = Record[Idx++];
-      int FilenameID = Record[Idx++];
+      int FilenameID = FileIDs[Record[Idx++]];
       SrcMgr::CharacteristicKind FileKind
         = (SrcMgr::CharacteristicKind)Record[Idx++];
       unsigned IncludeOffset = Record[Idx++];