C++: Expand object-like macros in fast preprocessing mode again.

Task-number: QTCREATORBUG-7512
Change-Id: I59898a0449f1f6997963e0f31c47293358a773f6
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
This commit is contained in:
Christian Kamm
2012-08-06 15:28:00 +02:00
parent e0e430e1dc
commit 605acda9ae
3 changed files with 12 additions and 12 deletions

View File

@@ -593,7 +593,7 @@ void Preprocessor::State::popTokenBuffer()
Preprocessor::Preprocessor(Client *client, Environment *env)
: m_client(client)
, m_env(env)
, m_expandMacros(true)
, m_expandFunctionlikeMacros(true)
, m_keepComments(false)
{
}
@@ -615,14 +615,14 @@ QByteArray Preprocessor::run(const QString &fileName,
return preprocessed;
}
bool Preprocessor::expandMacros() const
bool Preprocessor::expandFunctionlikeMacros() const
{
return m_expandMacros;
return m_expandFunctionlikeMacros;
}
void Preprocessor::setExpandMacros(bool expandMacros)
void Preprocessor::setExpandFunctionlikeMacros(bool expandMacros)
{
m_expandMacros = expandMacros;
m_expandFunctionlikeMacros = expandMacros;
}
bool Preprocessor::keepComments() const
@@ -741,9 +741,6 @@ void Preprocessor::skipPreprocesorDirective(PPToken *tk)
bool Preprocessor::handleIdentifier(PPToken *tk)
{
if (!expandMacros())
return false;
ScopedBoolSwap s(m_state.m_inPreprocessorDirective, true);
static const QByteArray ppLine("__LINE__");
@@ -813,6 +810,9 @@ bool Preprocessor::handleIdentifier(PPToken *tk)
PPToken oldMarkerTk;
if (macro->isFunctionLike()) {
if (!expandFunctionlikeMacros())
return false;
// Collect individual tokens that form the macro arguments.
QVector<QVector<PPToken> > allArgTks;
bool hasArgs = collectActualArguments(tk, &allArgTks);