From 6a7624054eebc67b153d1b2cf94034a946bf4cdd Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Wed, 12 Aug 2009 01:58:49 +0700 Subject: [PATCH] Fixed ticket #584 (Tokenizer: don't set varId for class declaration) http://sourceforge.net/apps/trac/cppcheck/ticket/584 --- src/tokenize.cpp | 2 +- test/testtokenize.cpp | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/tokenize.cpp b/src/tokenize.cpp index 9f3d0ba71..e74ec9457 100644 --- a/src/tokenize.cpp +++ b/src/tokenize.cpp @@ -742,7 +742,7 @@ void Tokenizer::setVarId() if (Token::Match(tok, "[,;{}(] %type%")) tok = tok->next(); - if (Token::Match(tok, "else|return|typedef|delete")) + if (Token::Match(tok, "else|return|typedef|delete|class")) continue; if (Token::Match(tok, "const|static|extern|public:|private:|protected:")) diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 211769404..7a5d1d900 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -93,6 +93,7 @@ private: TEST_CASE(varid8); TEST_CASE(varid9); TEST_CASE(varid10); + TEST_CASE(varid11); TEST_CASE(varidStl); TEST_CASE(varid_delete); TEST_CASE(varid_functions); @@ -1270,6 +1271,24 @@ private: ASSERT_EQUALS(expected, actual); } + void varid11() + { + const std::string code("class Foo;\n"); + + // tokenize.. + Tokenizer tokenizer; + std::istringstream istr(code); + tokenizer.tokenize(istr, "test.cpp"); + tokenizer.setVarId(); + + // result.. + const std::string actual(tokenizer.tokens()->stringifyList(true)); + const std::string expected("\n\n##file 0\n" + "1: class Foo ;\n"); + + ASSERT_EQUALS(expected, actual); + } + void varidStl() { const std::string code("list ints;\n"