From f6510a6b4523260279be6fc2955b94f3562fa182 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sun, 12 Jan 2014 15:15:09 +0100 Subject: [PATCH] Fixed #5339 (Tokenizer::setVarId : function-pointer function argument not getting variable id, causing FP) --- lib/tokenize.cpp | 2 +- test/testsimplifytokens.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 022ae2395..d5a27c174 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -5152,7 +5152,7 @@ void Tokenizer:: simplifyFunctionPointers() } // check for start of statement - else if (tok->previous() && !Token::Match(tok->previous(), "{|}|;|(|public:|protected:|private:")) + else if (tok->previous() && !Token::Match(tok->previous(), "{|}|;|,|(|public:|protected:|private:")) continue; if (Token::Match(tok, "%type% *| *| ( * %var% [| ]| ) (")) diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index ea773fa3f..1d2228fdd 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -420,6 +420,8 @@ private: TEST_CASE(simplifyFunctorCall); + TEST_CASE(simplifyFunctionPointer); // ticket #5339 (simplify function pointer after comma) + TEST_CASE(redundant_semicolon); TEST_CASE(simplifyFunctionReturn); @@ -8019,6 +8021,11 @@ private: ASSERT_EQUALS("IncrementFunctor ( ) ( a ) ;", tok("IncrementFunctor()(a);", true)); } + // #ticket #5339 (simplify function pointer after comma) + void simplifyFunctionPointer() { + ASSERT_EQUALS("f ( double x , double * y ) ;", tok("f (double x, double (*y) ());", true)); + } + void redundant_semicolon() { ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { ; }", false)); ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { do { ; } while (0); }", true));