summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2020-05-27 15:04:59 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2020-05-28 09:20:06 +0000
commit9dafc323b5a8a3234caed740863944f733683680 (patch)
tree04b11112de6c29776285b566fc7191dd5406e2c2
parent13ad8163080153cb5d1ea39238069b5cca8f9651 (diff)
downloadqt-creator-9dafc323b5a8a3234caed740863944f733683680.tar.gz
CppTools/ClangTools: Fix saving diagnostic configs for code model
As ClangDiagnosticConfig() has tidy and clazy enabled by default now, the ClangTools' importDiagnosticConfigsFromCodeModel() takes diagnostic configs on start up away from CppCodeModelSettings. Ensure that built-in configs do not have tidy/clazy enabled by default. Also, when importing, look at the actually enabled checks. Fixes: QTCREATORBUG-23717 Change-Id: Id8370ae2fff2392fc94aa957fd33c1954aff5594 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/plugins/clangtools/clangtoolssettings.cpp3
-rw-r--r--src/plugins/cpptools/cppcodemodelsettings.cpp4
-rw-r--r--src/plugins/cpptools/cpptoolsreuse.cpp4
3 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/clangtools/clangtoolssettings.cpp b/src/plugins/clangtools/clangtoolssettings.cpp
index cbd15f512f..ad704728ac 100644
--- a/src/plugins/clangtools/clangtoolssettings.cpp
+++ b/src/plugins/clangtools/clangtoolssettings.cpp
@@ -118,7 +118,8 @@ ClangDiagnosticConfigs importDiagnosticConfigsFromCodeModel()
ClangDiagnosticConfigs clangOnlyConfigs;
std::tie(tidyClazyConfigs, clangOnlyConfigs)
= Utils::partition(configs, [](const ClangDiagnosticConfig &config) {
- return config.isClazyEnabled() || config.isClangTidyEnabled();
+ return !config.clazyChecks().isEmpty()
+ || (!config.clangTidyChecks().isEmpty() && config.clangTidyChecks() != "-*");
});
if (!tidyClazyConfigs.isEmpty()) {
diff --git a/src/plugins/cpptools/cppcodemodelsettings.cpp b/src/plugins/cpptools/cppcodemodelsettings.cpp
index 8b8874c958..ee90d178b8 100644
--- a/src/plugins/cpptools/cppcodemodelsettings.cpp
+++ b/src/plugins/cpptools/cppcodemodelsettings.cpp
@@ -80,6 +80,8 @@ static ClangDiagnosticConfigs removedBuiltinConfigs()
"Pedantic checks"));
config.setIsReadOnly(true);
config.setClangOptions(QStringList{QStringLiteral("-Wpedantic")});
+ config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks);
+ config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks);
configs << config;
// Everything with exceptions
@@ -104,6 +106,8 @@ static ClangDiagnosticConfigs removedBuiltinConfigs()
QStringLiteral("-Wno-missing-prototypes"), // Not optimal for C projects.
QStringLiteral("-Wno-used-but-marked-unused"), // e.g. QTest::qWait
});
+ config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks);
+ config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks);
configs << config;
return configs;
diff --git a/src/plugins/cpptools/cpptoolsreuse.cpp b/src/plugins/cpptools/cpptoolsreuse.cpp
index 37a00673b3..d98febf697 100644
--- a/src/plugins/cpptools/cpptoolsreuse.cpp
+++ b/src/plugins/cpptools/cpptoolsreuse.cpp
@@ -356,6 +356,8 @@ static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model)
"-Wall",
"-Wextra",
});
+ config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks);
+ config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks);
model.appendOrUpdate(config);
// Warning flags from build system
@@ -364,6 +366,8 @@ static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model)
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
"Build-system warnings"));
config.setIsReadOnly(true);
+ config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks);
+ config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks);
config.setUseBuildSystemWarnings(true);
model.appendOrUpdate(config);
}