forked from qt-creator/qt-creator
C++: fix the quick-exit for already parsed files.
When the preprocessor is asked to process a file which it has already seen before, it can skip it, but it still has to add the file to the list of included files for the current document. Task-number: QTCREATORBUG-9107 Change-Id: I30cac61c1da20da7fe925168ecccb429584e9746 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
committed by
Nikolai Kosjar
parent
8ba344a556
commit
c388c05b86
@@ -511,17 +511,17 @@ void CppPreprocessor::sourceNeeded(unsigned line, const QString &fileName, Inclu
|
||||
return;
|
||||
|
||||
QString absoluteFileName = resolveFile(fileName, type);
|
||||
absoluteFileName = QDir::cleanPath(absoluteFileName);
|
||||
if (m_currentDoc && !absoluteFileName.isEmpty())
|
||||
m_currentDoc->addIncludeFile(absoluteFileName, line);
|
||||
if (m_included.contains(absoluteFileName))
|
||||
return; // we've already seen this file.
|
||||
m_included.insert(absoluteFileName);
|
||||
|
||||
absoluteFileName = QDir::cleanPath(absoluteFileName);
|
||||
unsigned editorRevision = 0;
|
||||
QString contents;
|
||||
getFileContents(absoluteFileName, &contents, &editorRevision);
|
||||
if (m_currentDoc) {
|
||||
m_currentDoc->addIncludeFile(absoluteFileName, line);
|
||||
|
||||
if (contents.isEmpty() && ! QFileInfo(absoluteFileName).isAbsolute()) {
|
||||
QString msg = QCoreApplication::translate(
|
||||
"CppPreprocessor", "%1: No such file or directory").arg(fileName);
|
||||
|
Reference in New Issue
Block a user