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;
 |