From 5a0a5422c39b79a3b91c166c38d88da762a855d5 Mon Sep 17 00:00:00 2001 From: Reijo Tomperi Date: Mon, 5 Oct 2009 14:22:35 +0300 Subject: [PATCH] Fix #776 (Tokenizer: remove useless brackets around variable assignment) http://sourceforge.net/apps/trac/cppcheck/ticket/776 --- src/tokenize.cpp | 2 +- test/testsimplifytokens.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tokenize.cpp b/src/tokenize.cpp index 1414d13a8..dcac6d11d 100644 --- a/src/tokenize.cpp +++ b/src/tokenize.cpp @@ -3408,7 +3408,7 @@ bool Tokenizer::simplifyRedundantParanthesis() ret = true; } - if (Token::Match(tok->previous(), "[(!*] ( %var% )") && tok->next()->varId() != 0) + if (Token::Match(tok->previous(), "[(!*;] ( %var% )") && tok->next()->varId() != 0) { // We have "( var )", remove the paranthesis tok = tok->previous(); diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index 86e22bd1c..f22caaaf8 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -417,6 +417,10 @@ private: ASSERT_EQUALS("return p ;", tok("return (p);")); ASSERT_EQUALS("void f ( ) { int * p ; if ( ! * p ) { } }", tok("void f(){int *p; if (*(p) == 0) {}}")); ASSERT_EQUALS("void f ( ) { int * p ; if ( ! * p ) { } }", tok("void f(){int *p; if (*p == 0) {}}")); + ASSERT_EQUALS("void f ( ) { int p ; p = 1 ; }", tok("void f(){int p; (p) = 1;}")); + ASSERT_EQUALS("void f ( ) { int p [ 10 ] ; p [ 0 ] = 1 ; }", tok("void f(){int p[10]; (p)[0] = 1;}")); + ASSERT_EQUALS("void f ( ) { int p ; if ( ! p ) { } }", tok("void f(){int p; if ((p) == 0) {}}")); + ASSERT_EQUALS("void f ( ) { int * p ; * p = 1 ; }", tok("void f(){int *p; *(p) = 1;}")); // keep parantheses.. ASSERT_EQUALS("= a ;", tok("= (char)a;"));