diff options
author | Leandro Melo <leandro.melo@nokia.com> | 2012-05-29 15:27:56 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-06-05 15:05:19 +0200 |
commit | d90264d6c2a7f9e53863de98145774727ea64e58 (patch) | |
tree | 607fac2bf81c2743018fdf31704cc8402220fe41 /src/libs/cplusplus/pp-engine.cpp | |
parent | 809a4ed91adc7018dedb09042977ddae0d97e32a (diff) | |
download | qt-creator-d90264d6c2a7f9e53863de98145774727ea64e58.tar.gz |
C++: Also expand first token after macro define
It was previously beeing skipped.
Change-Id: Iadd9b03acbcf0ee0fb4db537b8597661cb93af3f
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/cplusplus/pp-engine.cpp')
-rw-r--r-- | src/libs/cplusplus/pp-engine.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index f6010994d8..b82f9a2731 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -1257,16 +1257,22 @@ void Preprocessor::handleDefineDirective(PPToken *tk) QVector<PPToken> bodyTokens; PPToken firstBodyToken = *tk; while (isValidToken(*tk)) { - tk->f.generated = true; - bodyTokens.push_back(*tk); - lex(tk); - if (eagerExpansion) + if (eagerExpansion) { + PPToken idTk = *tk; while (tk->is(T_IDENTIFIER) && (!tk->newline() || tk->joined()) && !isQtReservedWord(tk->asByteArrayRef()) && handleIdentifier(tk)) { lex(tk); + if (tk->asByteArrayRef() == macroName) { + *tk = idTk; + break; + } } + } + tk->f.generated = true; + bodyTokens.push_back(*tk); + lex(tk); } if (isQtReservedWord(ByteArrayRef(¯oName))) { |