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>
This commit is contained in:
Ivan Donchevskii
2017-11-21 12:18:28 +01:00
parent 59e3d9af1e
commit 194bde265c
3 changed files with 8 additions and 0 deletions

View File

@@ -65,6 +65,7 @@ QStringList ClangCompilerOptionsBuilder::build(CppTools::ProjectFile::Kind fileK
addToolchainAndProjectMacros();
undefineClangVersionMacrosForMsvc();
undefineCppLanguageFeatureMacrosForMsvc2015();
addDefineFunctionMacrosMsvc();
addPredefinedHeaderPathsOptions();
addWrappedQtHeadersIncludePath();

View File

@@ -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?

View File

@@ -61,6 +61,7 @@ public:
void addMsvcCompatibilityVersion();
void undefineCppLanguageFeatureMacrosForMsvc2015();
void addDefineFunctionMacrosMsvc();
void addDefineFloat128ForMingw();