From 1903585ea3364c438321c5b2a2e5b1a2334ca09c Mon Sep 17 00:00:00 2001 From: PKEuS Date: Tue, 14 May 2013 01:43:32 -0700 Subject: [PATCH] Fixed bug in handling rvalue references: Scope has to be set everywhere. (#4732) --- lib/tokenize.cpp | 1 + test/testsymboldatabase.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 74112289c..79753a095 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2010,6 +2010,7 @@ bool Tokenizer::tokenize(std::istream &code, if (var && var->isRValueReference()) { const_cast(var->typeEndToken())->str("&"); const_cast(var->typeEndToken())->insertToken("&"); + const_cast(var->typeEndToken()->next())->scope(var->typeEndToken()->scope()); } } diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp index 6935e2b1e..850c6fd46 100644 --- a/test/testsymboldatabase.cpp +++ b/test/testsymboldatabase.cpp @@ -539,6 +539,7 @@ private: ASSERT(false == v.isPointer()); ASSERT(true == v.isReference()); ASSERT(true == v.isRValueReference()); + ASSERT(var.tokens()->tokAt(2)->scope()); } void staticMemberVar() {