summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/pp-engine.cpp
diff options
context:
space:
mode:
authorLeandro Melo <leandro.melo@nokia.com>2012-06-28 10:55:51 +0200
committerLeandro Melo <leandro.melo@nokia.com>2012-06-28 11:49:50 +0200
commit621e5c3dbefef6d90ce02229aeff2da16309d541 (patch)
treef101e2b881d17467b20ba25d516945670ede9e20 /src/libs/cplusplus/pp-engine.cpp
parentd1971174d4d475e48c6f922e9aefab933a8581af (diff)
downloadqt-creator-621e5c3dbefef6d90ce02229aeff2da16309d541.tar.gz
C++: Parse emit/Q_EMIT properly
The parser now understands emit/Q_EMIT as an expression statement. Also, the recent fixes in the preprocessor introduced a side-effect in the hanlding of code such as: emit signal(); Member signal started being treated as a local use (parsed as a declaration) and possibily being highlighted as unused variable. Previously that worked by accident since there was an inconsistency in the preprocessor on which only object-like macros were being expanded even when the "no expand" flag was set. Then, the code mentioned above was being parsed as an expression, what kind of worked. Change-Id: I47a68ed4c1c1702872620b8ed7c7264fb0997034 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/libs/cplusplus/pp-engine.cpp')
-rw-r--r--src/libs/cplusplus/pp-engine.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index ea8c75e019..7702aadd0a 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -1813,6 +1813,10 @@ bool Preprocessor::isQtReservedWord(const ByteArrayRef &macroId)
return true;
else if (size == 5 && macroId.at(0) == 's' && macroId == "slots")
return true;
+ else if (size == 4 && macroId.at(0) == 'e' && macroId == "emit")
+ return true;
+ else if (size == 6 && macroId.at(0) == 'Q' && macroId == "Q_EMIT")
+ return true;
return false;
}