diff options
Diffstat (limited to 'qmake/library')
-rw-r--r-- | qmake/library/qmakeparser.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp index 4d389b9492..8094e3a9a7 100644 --- a/qmake/library/qmakeparser.cpp +++ b/qmake/library/qmakeparser.cpp @@ -910,8 +910,14 @@ void QMakeParser::flushCond(ushort *&tokPtr) void QMakeParser::putOperator(ushort *&tokPtr) { - if (m_operator != NoOperator) { - putTok(tokPtr, (m_operator == AndOperator) ? TokAnd : TokOr); + if (m_operator== AndOperator) { + // A colon must be used after else and for() if no brace is used, + // but in this case it is obviously not a binary operator. + if (m_state == StCond) + putTok(tokPtr, TokAnd); + m_operator = NoOperator; + } else if (m_operator == OrOperator) { + putTok(tokPtr, TokOr); m_operator = NoOperator; } } |