diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index e14a7e93b8af2d85cf9ef12133738fe55e59fb29..3f94652ee66c1d7eca9c8b2b09a6f053a7fe373c 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -810,8 +810,11 @@ bool Preprocessor::handleIdentifier(PPToken *tk) PPToken oldMarkerTk; if (macro->isFunctionLike()) { - if (!expandFunctionlikeMacros()) + if (!expandFunctionlikeMacros() + // Still expand if this originally started with an object-like macro. + && m_state.m_expansionStatus != Expanding) { return false; + } // Collect individual tokens that form the macro arguments. QVector<QVector<PPToken> > allArgTks;