This revision was automatically updated to reflect the committed changes. Closed by commit rL295301: Cache FileID when translating diagnostics in PCH files (authored by erikjv).
Changed prior to commit: https://reviews.llvm.org/D29755?vs=88366&id=88701#toc Repository: rL LLVM https://reviews.llvm.org/D29755 Files: cfe/trunk/lib/Frontend/ASTUnit.cpp Index: cfe/trunk/lib/Frontend/ASTUnit.cpp =================================================================== --- cfe/trunk/lib/Frontend/ASTUnit.cpp +++ cfe/trunk/lib/Frontend/ASTUnit.cpp @@ -2541,14 +2541,19 @@ SmallVector<StoredDiagnostic, 4> Result; Result.reserve(Diags.size()); + const FileEntry *PreviousFE = nullptr; + FileID FID; for (const StandaloneDiagnostic &SD : Diags) { // Rebuild the StoredDiagnostic. if (SD.Filename.empty()) continue; const FileEntry *FE = FileMgr.getFile(SD.Filename); if (!FE) continue; - FileID FID = SrcMgr.translateFile(FE); + if (FE != PreviousFE) { + FID = SrcMgr.translateFile(FE); + PreviousFE = FE; + } SourceLocation FileLoc = SrcMgr.getLocForStartOfFile(FID); if (FileLoc.isInvalid()) continue;
Index: cfe/trunk/lib/Frontend/ASTUnit.cpp =================================================================== --- cfe/trunk/lib/Frontend/ASTUnit.cpp +++ cfe/trunk/lib/Frontend/ASTUnit.cpp @@ -2541,14 +2541,19 @@ SmallVector<StoredDiagnostic, 4> Result; Result.reserve(Diags.size()); + const FileEntry *PreviousFE = nullptr; + FileID FID; for (const StandaloneDiagnostic &SD : Diags) { // Rebuild the StoredDiagnostic. if (SD.Filename.empty()) continue; const FileEntry *FE = FileMgr.getFile(SD.Filename); if (!FE) continue; - FileID FID = SrcMgr.translateFile(FE); + if (FE != PreviousFE) { + FID = SrcMgr.translateFile(FE); + PreviousFE = FE; + } SourceLocation FileLoc = SrcMgr.getLocForStartOfFile(FID); if (FileLoc.isInvalid()) continue;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits