From 1fd5cd4dbcc892c68fa8e3f415293a500d291f93 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 17 Oct 2016 15:12:05 +0200 Subject: [PATCH] Clang: Use compiler specific undefine option libclang generated: warning: /U__cpp_aggregate_nsdmi: 'linker' input unused [-Wunused-command-line-argument] warning: /U__cpp_alias_templates: 'linker' input unused [-Wunused-command-line-argument] ... It needs -U. Change-Id: Ibbd2f97e6f806215e3008803f57608b9b6b4c641 Reviewed-by: Christian Kandeler --- .../clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp | 7 +++++++ src/plugins/cpptools/compileroptionsbuilder.cpp | 7 ++++++- src/plugins/cpptools/compileroptionsbuilder.h | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 75f4f025736..1ead54a811a 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -263,6 +263,13 @@ private: return CompilerOptionsBuilder::defineOption(); } + QString undefineOption() const override + { + if (m_isMsvcToolchain) + return QLatin1String("/U"); + return CompilerOptionsBuilder::undefineOption(); + } + void enableExceptions() override { if (m_isMsvcToolchain) diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 6f2991fea06..f3b89c27f6b 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -342,7 +342,7 @@ void CompilerOptionsBuilder::undefineCppLanguageFeatureMacrosForMsvc2015() // Undefine the language feature macros that are pre-defined in clang-cl 3.8.0, // but not in MSVC2015's cl.exe. foreach (const QString ¯oName, languageFeatureMacros()) - m_options.append(QLatin1String("/U") + macroName); + m_options.append(undefineOption() + macroName); } } @@ -364,6 +364,11 @@ QString CompilerOptionsBuilder::defineOption() const return QLatin1String("-D"); } +QString CompilerOptionsBuilder::undefineOption() const +{ + return QLatin1String("-U"); +} + static bool isGccOrMinGwToolchain(const Core::Id &toolchainType) { return toolchainType == ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 34c7103f1b5..a4aec5afdd9 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -60,6 +60,7 @@ protected: virtual bool excludeHeaderPath(const QString &headerPath) const; virtual QString defineOption() const; + virtual QString undefineOption() const; virtual QString includeOption() const; const ProjectPart m_projectPart;