From 293f67580dbfc2a5888be33c7807e28e2dcaf6bf Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Wed, 3 Mar 2010 14:09:38 +0100
Subject: [PATCH] Fixed: Wrong usage highlighting if function's argument list
 contains comment.

Task-number: QTCREATORBUG-577
---
 src/libs/cplusplus/pp-engine.cpp | 17 ++++++++++++++++-
 src/libs/cplusplus/pp-engine.h   |  1 +
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index 6a6e5274272..806449959a4 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -662,6 +662,21 @@ bool Preprocessor::markGeneratedTokens(bool markGeneratedTokens,
     return previous;
 }
 
+bool Preprocessor::maybeAfterComment() const
+{
+    unsigned endOfPreviousToken = 0;
+
+    if (_dot != _tokens.constBegin())
+        endOfPreviousToken = (_dot - 1)->end();
+
+    const char *start = _source.constBegin() + endOfPreviousToken;
+
+    if (*start == '/')
+        return true;
+
+    return false;
+}
+
 void Preprocessor::preprocess(const QString &fileName, const QByteArray &source,
                               QByteArray *result)
 {
@@ -710,7 +725,7 @@ void Preprocessor::preprocess(const QString &fileName, const QByteArray &source,
 
         } else {
 
-            if (_dot->f.whitespace) {
+            if (_dot->f.whitespace || maybeAfterComment()) {
                 unsigned endOfPreviousToken = 0;
 
                 if (_dot != _tokens.constBegin())
diff --git a/src/libs/cplusplus/pp-engine.h b/src/libs/cplusplus/pp-engine.h
index 596a223e058..b75a5ab60e0 100644
--- a/src/libs/cplusplus/pp-engine.h
+++ b/src/libs/cplusplus/pp-engine.h
@@ -172,6 +172,7 @@ private:
     void out(const char *s);
 
     QString string(const char *first, int len) const;
+    bool maybeAfterComment() const;
 
 private:
     Client *client;
-- 
GitLab