aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/gcctoolchain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/gcctoolchain.cpp')
-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;
};
}