aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-08-31 10:31:39 +0200
committerEike Ziller <eike.ziller@qt.io>2018-09-24 12:43:22 +0000
commitad8098b372d19c5b7d517230566fc549ff001045 (patch)
tree3c765e58739f33bd5ffa9954d7853c8cf8a3940f
parent813c16854df6be7fd1f1a8013d0b180f6248e5ab (diff)
Fix conflicting LanguageVersion and value __cplusplus define
Task-number: QTCREATORBUG-20884 Change-Id: Ieddb277ed5a7c167d75f902275b8f98cc3fc8af4 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 98b7825d5b..f2d45e6dde 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -383,6 +383,8 @@ static Utils::FileName findLocalCompiler(const Utils::FileName &compilerPath,
return path.isEmpty() ? compilerPath : path;
}
+Q_GLOBAL_STATIC_WITH_ARGS(const QVector<QByteArray>, unwantedMacros, ({"__cplusplus"}))
+
ToolChain::PredefinedMacrosRunner GccToolChain::createPredefinedMacrosRunner() const
{
// Using a clean environment breaks ccache/distcc/etc.
@@ -440,17 +442,20 @@ ToolChain::PredefinedMacrosRunner GccToolChain::createPredefinedMacrosRunner() c
= gccPredefinedMacros(findLocalCompiler(compilerCommand, env),
arguments,
env.toStringList());
- macroCache->insert(arguments, macros);
+ const QVector<Macro> filteredMacros = Utils::filtered(macros, [](const Macro &m) {
+ return !unwantedMacros->contains(m.key);
+ });
+ macroCache->insert(arguments, filteredMacros);
qCDebug(gccLog) << "Reporting macros to code model:";
- for (const Macro &m : macros) {
+ for (const Macro &m : filteredMacros) {
qCDebug(gccLog) << compilerCommand.toUserOutput()
<< (lang == Constants::CXX_LANGUAGE_ID ? ": C++ [" : ": C [")
<< arguments.join(", ") << "]"
<< QString::fromUtf8(m.toByteArray());
}
- return macros;
+ return filteredMacros;
};
}