aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/cplusplus/pp-engine.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2012-04-19 17:30:03 +0200
committerhjk <[email protected]>2012-04-19 19:29:56 +0200
commit493cde8335849bd90381d99967edcead3cfd2541 (patch)
tree53faafe379d87efd5821af5be3b597d6a2b04f55 /src/libs/cplusplus/pp-engine.cpp
parent0362016f02c80c5e55a7d8e6bd482a4aeaaf7ac3 (diff)
preprocessor: do not expand macros when checking defined(...)
Diffstat (limited to 'src/libs/cplusplus/pp-engine.cpp')
-rw-r--r--src/libs/cplusplus/pp-engine.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index 7dca9a3497a..9661852b2a8 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -636,6 +636,7 @@ void Preprocessor::genLine(unsigned lineno, const QByteArray &fileName) const
void Preprocessor::handleDefined(PPToken *tk)
{
+ ScopedBoolSwap s(m_state.m_inPreprocessorDirective, true);
unsigned lineno = tk->lineno;
lex(tk); // consume "defined" token
bool lparenSeen = tk->is(T_LPAREN);
@@ -698,8 +699,7 @@ _Lclassify:
} while (isValidToken(*tk));
goto _Lclassify;
} else if (tk->is(T_IDENTIFIER) && !isQtReservedWord(tk->asByteArrayRef())) {
- static const QByteArray ppDefined("defined");
- if (m_state.m_inCondition && tk->asByteArrayRef() == ppDefined)
+ if (m_state.m_inCondition && tk->asByteArrayRef() == "defined")
handleDefined(tk);
else if (handleIdentifier(tk))
goto _Lagain;