From 1fd2c0ff28695cc66e244a809abb77bf35da3877 Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Sun, 9 Aug 2009 15:16:37 +0700 Subject: [PATCH] Fixed ticket #572 (Tokenizer: improve detection of arrays) http://sourceforge.net/apps/trac/cppcheck/ticket/572 --- src/tokenize.cpp | 6 ++++-- test/testsimplifytokens.cpp | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/tokenize.cpp b/src/tokenize.cpp index 8eea577d8..bfebdbaba 100644 --- a/src/tokenize.cpp +++ b/src/tokenize.cpp @@ -2326,12 +2326,14 @@ bool Tokenizer::simplifyVarDecl() } } - else if (Token::Match(tok2, "%type% %var% [ %num% ] ,")) + else if (Token::Match(tok2, "%type% %var% [ %num% ] ,") || + Token::Match(tok2, "%type% %var% [ %var% ] ,")) { tok2 = tok2->tokAt(5); // The ',' token } - else if (Token::Match(tok2, "%type% * %var% [ %num% ] ,")) + else if (Token::Match(tok2, "%type% * %var% [ %num% ] ,") || + Token::Match(tok2, "%type% * %var% [ %var% ] ,")) { tok2 = tok2->tokAt(6); // The ',' token } diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index e0983421c..48d10d26f 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -1108,6 +1108,15 @@ private: "}\n"; ASSERT_EQUALS(" void f ( ) { for ( int a , b ; a < 10 ; a = a + 1 , b = b + 1 ) { ; } }", sizeof_(code)); } + + { + const char code[] = "void f()\n" + "{\n" + " char buf[BUFSIZ], **p;\n" + " char *ptrs[BUFSIZ], **pp;\n" + "}\n"; + ASSERT_EQUALS(" void f ( ) { char buf [ BUFSIZ ] ; char * * p ; char * ptrs [ BUFSIZ ] ; char * * pp ; }", sizeof_(code)); + } } void remove_comma()