diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index 3041fd827e3874d9a53d9ad4b71154d1348a6dba..473086f08c0afae02c301a19f986ff71a95d0ffc 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -664,6 +664,20 @@ Preprocessor::State Preprocessor::createStateFromSource(const QByteArray &source void Preprocessor::processNewline(bool force) { + if (_dot != _tokens.constBegin()) { + TokenIterator prevTok = _dot - 1; + + if (prevTok->isLiteral()) { + const char *ptr = _source.constBegin() + prevTok->begin(); + const char *end = ptr + prevTok->length(); + + for (; ptr != end; ++ptr) { + if (*ptr == '\n') + ++env->currentLine; + } + } + } + if (! force && env->currentLine == _dot->lineno) return;