diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index 370e3decb404412bdf11ca386482b81dfb17be4b..5be562dcfa23e0aff44f1f171212261142c84d01 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -818,6 +818,17 @@ void Preprocessor::preprocess(const QString &fileName, const QByteArray &source, const QByteArray spell = tokenSpell(*identifierToken); if (! _expandMacros) { + if (! env->isBuiltinMacro(spell)) { + Macro *m = env->resolve(spell); + if (m && ! m->isFunctionLike()) { + QByteArray expandedDefinition; + expandObjectLikeMacro(identifierToken, spell, m, &expandedDefinition); + if (expandedDefinition.trimmed().isEmpty()) { + out(QByteArray(spell.length(), ' ')); + continue; + } + } + } out(spell); continue; }