aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2017-11-21 12:18:28 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2017-11-21 11:31:22 +0000
commit194bde265c9c207052f1039c54cf9d6cb32703c8 (patch)
tree50a7207d0996a94bb03a31d2358f9f449cf4991c
parent59e3d9af1e3197d29682e59c810ec7a40454feec (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.cpp1
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp6
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.h1
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();