aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2014-02-24 12:12:14 -0300
committerNikolai Kosjar <nikolai.kosjar@digia.com>2014-03-10 13:42:51 +0100
commit4bf11c7df6aac526a9272a827fa96d099253cbcf (patch)
tree3952776591a935426e008ece5329e6d8ae1b3622 /src/plugins/cpptools
parentaa796a9fc06dc1817b99355a333d2b0edce7215b (diff)
CppTools: Add diagnostic message for non-existent absolute paths
Change-Id: I9a05a92c1adc37db0c918127715714d1f6d2a78d Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r--src/plugins/cpptools/cpppreprocessor.cpp6
-rw-r--r--src/plugins/cpptools/cpppreprocessor_test.cpp5
2 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cpppreprocessor.cpp b/src/plugins/cpptools/cpppreprocessor.cpp
index dd185a7e393..b2768850013 100644
--- a/src/plugins/cpptools/cpppreprocessor.cpp
+++ b/src/plugins/cpptools/cpppreprocessor.cpp
@@ -235,10 +235,12 @@ QString CppPreprocessor::cleanPath(const QString &path)
QString CppPreprocessor::resolveFile_helper(const QString &fileName, IncludeType type)
{
- const QFileInfo fileInfo(fileName);
- if (isInjectedFile(fileName) || fileInfo.isAbsolute())
+ if (isInjectedFile(fileName))
return fileName;
+ if (QFileInfo(fileName).isAbsolute())
+ return checkFile(fileName) ? fileName : QString();
+
if (type == IncludeLocal && m_currentDoc) {
const QFileInfo currentFileInfo(m_currentDoc->fileName());
const QString path = cleanPath(currentFileInfo.absolutePath()) + fileName;
diff --git a/src/plugins/cpptools/cpppreprocessor_test.cpp b/src/plugins/cpptools/cpppreprocessor_test.cpp
index 3178aa9771c..c37aa73b1ee 100644
--- a/src/plugins/cpptools/cpppreprocessor_test.cpp
+++ b/src/plugins/cpptools/cpppreprocessor_test.cpp
@@ -168,6 +168,7 @@ void CppToolsPlugin::test_cpppreprocessor_includes_allDiagnostics()
QByteArray source =
"#include <NotResolvable1>\n"
"#include <NotResolvable2>\n"
+ "#include \"/some/nonexisting/file123.h\"\n"
"\n"
;
@@ -176,6 +177,6 @@ void CppToolsPlugin::test_cpppreprocessor_includes_allDiagnostics()
QVERIFY(document);
QCOMPARE(document->resolvedIncludes().size(), 0);
- QCOMPARE(document->unresolvedIncludes().size(), 2);
- QCOMPARE(document->diagnosticMessages().size(), 2);
+ QCOMPARE(document->unresolvedIncludes().size(), 3);
+ QCOMPARE(document->diagnosticMessages().size(), 3);
}