aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-18 12:23:51 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-12-19 12:04:56 +0000
commit2de52cffb18ece90883b3aa4821035ba476adfd7 (patch)
tree5b1242d80027b1f9c0acc8372842f36a304871ba /src/plugins/clangcodemodel
parent62fd36847340c2eeeb3361a5d84bdfba4972f0f4 (diff)
Clang: Fix c++98-compat warnings for MSVC toolchain
Clang invoked with --driver-mode=cl will map "-Wall" to "-Weverything", thus enabling -Wc++98-compat-pedantic and way more options. Fix this by escaping "-Wall" in the cl mode, effectively passing in "/clang:-Wall" instead of "-Wall". This fixes what 5675169e564a1af0d4b47d4f1ee872e404cc2d17 addressed also for ClangTools. Change-Id: Ideb7bab923d0359e8039b61e9d53c8765de79c29 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel')
-rw-r--r--src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
index 51acd3a5a6..718b0dad28 100644
--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
@@ -441,6 +441,7 @@ public:
{
// Determine the driver mode from toolchain and flags.
m_builder.evaluateCompilerFlags();
+ m_isClMode = m_builder.isClStyle();
addLanguageOptions();
addGlobalDiagnosticOptions(); // Before addDiagnosticOptions() so users still can overwrite.
@@ -498,7 +499,10 @@ private:
? CppTools::UseBuildSystemWarnings::Yes
: CppTools::UseBuildSystemWarnings::No;
- m_options.append(diagnosticConfig.clangOptions());
+ const QStringList options = m_isClMode
+ ? CppTools::clangArgsForCl(diagnosticConfig.clangOptions())
+ : diagnosticConfig.clangOptions();
+ m_options.append(options);
}
void addGlobalDiagnosticOptions()
@@ -537,6 +541,7 @@ private:
Core::Id m_diagnosticConfigId;
CppTools::UseBuildSystemWarnings m_useBuildSystemWarnings = CppTools::UseBuildSystemWarnings::No;
CppTools::CompilerOptionsBuilder m_builder;
+ bool m_isClMode = false;
QStringList m_options;
};
} // namespace