From 472cae1823f1380f0163985bb93d483c355509a2 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 28 Aug 2020 10:31:38 +0200 Subject: [PATCH] ClangTools: Fix soft assert when no clang tool can be detected When no clang include dir or version can be detected the runner does not contain a valid executable so skip that runner. Change-Id: Ia1b664b65ac4a9d80042d77dfb5b8842ec06dcea Reviewed-by: Christian Stenger --- src/plugins/clangtools/documentclangtoolrunner.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index b37c39087d8..382b8ece2ef 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -218,11 +218,15 @@ void DocumentClangToolRunner::runNext() auto [clangIncludeDir, clangVersion] = getClangIncludeDirAndVersion(m_currentRunner.get()); qCDebug(LOG) << Q_FUNC_INFO << m_currentRunner->executable() << clangIncludeDir << clangVersion << m_fileInfo.file; - AnalyzeUnit unit(m_fileInfo, clangIncludeDir, clangVersion); - QTC_ASSERT(Utils::FilePath::fromString(unit.file).exists(), runNext(); return;); - m_currentRunner->setVFSOverlay(vfso().overlayFilePath().toString()); - if (!m_currentRunner->run(unit.file, unit.arguments)) + if (clangIncludeDir.isEmpty() || clangVersion.isEmpty()) { runNext(); + } else { + AnalyzeUnit unit(m_fileInfo, clangIncludeDir, clangVersion); + QTC_ASSERT(Utils::FilePath::fromString(unit.file).exists(), runNext(); return;); + m_currentRunner->setVFSOverlay(vfso().overlayFilePath().toString()); + if (!m_currentRunner->run(unit.file, unit.arguments)) + runNext(); + } } else { finalize(); }