diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-11-21 12:18:28 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-11-21 11:31:22 +0000 |
commit | 194bde265c9c207052f1039c54cf9d6cb32703c8 (patch) | |
tree | 50a7207d0996a94bb03a31d2358f9f449cf4991c | |
parent | 59e3d9af1e3197d29682e59c810ec7a40454feec (diff) |
Clang: Define __FUNCSIG__ and others for msvc toolchain
Affects __FUNCSIG__, __FUNCTION__ and __FUNCDNAME__.
By default Clang can't concatenate strings under those
macros with other strings.
Because of that we need to define them with empty strings
to make clang compile such cases without errors.
Task-number: QTCREATORBUG-19295
Change-Id: I9a3770ebe56b4b8a49ba9982c5a1ba90c8f0b304
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r-- | src/plugins/cpptools/clangcompileroptionsbuilder.cpp | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.h | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/cpptools/clangcompileroptionsbuilder.cpp b/src/plugins/cpptools/clangcompileroptionsbuilder.cpp index 0b2209cc628..6a412e7d725 100644 --- a/src/plugins/cpptools/clangcompileroptionsbuilder.cpp +++ b/src/plugins/cpptools/clangcompileroptionsbuilder.cpp @@ -65,6 +65,7 @@ QStringList ClangCompilerOptionsBuilder::build(CppTools::ProjectFile::Kind fileK addToolchainAndProjectMacros(); undefineClangVersionMacrosForMsvc(); undefineCppLanguageFeatureMacrosForMsvc2015(); + addDefineFunctionMacrosMsvc(); addPredefinedHeaderPathsOptions(); addWrappedQtHeadersIncludePath(); diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 88a85e17cda..914973bc447 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -339,6 +339,12 @@ void CompilerOptionsBuilder::undefineCppLanguageFeatureMacrosForMsvc2015() } } +void CompilerOptionsBuilder::addDefineFunctionMacrosMsvc() +{ + if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) + addMacros({{"__FUNCSIG__", "\"\""}, {"__FUNCTION__", "\"\""}, {"__FUNCDNAME__", "\"\""}}); +} + void CompilerOptionsBuilder::addDefineFloat128ForMingw() { // CLANG-UPGRADE-CHECK: Workaround still needed? diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 9274a1bafc1..e3cf1bbcefd 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -61,6 +61,7 @@ public: void addMsvcCompatibilityVersion(); void undefineCppLanguageFeatureMacrosForMsvc2015(); + void addDefineFunctionMacrosMsvc(); void addDefineFloat128ForMingw(); |