forked from qt-creator/qt-creator
Task-number: QTCREATORBUG-17397 Change-Id: I3734b77341ca2c7fd87b0f8e5d1502b859de7692 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
26 lines
930 B
Diff
26 lines
930 B
Diff
diff --git a/tools/clang/lib/Frontend/ASTUnit.cpp b/tools/clang/lib/Frontend/ASTUnit.cpp
|
|
index d892996..5148a8b 100644
|
|
--- a/tools/clang/lib/Frontend/ASTUnit.cpp
|
|
+++ b/tools/clang/lib/Frontend/ASTUnit.cpp
|
|
@@ -2534,6 +2534,8 @@ void ASTUnit::TranslateStoredDiagnostics(
|
|
|
|
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())
|
|
@@ -2541,7 +2543,10 @@ void ASTUnit::TranslateStoredDiagnostics(
|
|
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;
|