diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-12-18 12:23:51 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-12-19 12:04:56 +0000 |
commit | 2de52cffb18ece90883b3aa4821035ba476adfd7 (patch) | |
tree | 5b1242d80027b1f9c0acc8372842f36a304871ba /src/plugins/clangcodemodel | |
parent | 62fd36847340c2eeeb3361a5d84bdfba4972f0f4 (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.cpp | 7 |
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 |