From c4ceb97cea555943f990a7cfd9ebe423c5dae389 Mon Sep 17 00:00:00 2001 From: PKEuS Date: Mon, 13 Apr 2015 20:37:07 +0200 Subject: [PATCH] Fixed #6629: Don't simplify sinf(0) if sinf is a variable --- lib/tokenize.cpp | 2 +- test/testtokenize.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 74cea3645..762a4a8f9 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -8372,7 +8372,7 @@ bool Tokenizer::isTwoNumber(const std::string &s) void Tokenizer::simplifyMathFunctions() { for (Token *tok = list.front(); tok; tok = tok->next()) { - if (tok->isName() && tok->strAt(1) == "(") { // precondition for function + if (tok->isName() && !tok->varId() && tok->strAt(1) == "(") { // precondition for function bool simplifcationMade = false; if (Token::Match(tok, "atol ( %str% )")) { //@todo Add support for atoll() if (tok->previous() && diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index d86f1f829..1a931d874 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -7557,6 +7557,11 @@ private: "std :: cout << 0 ;\n" "}"; ASSERT_EQUALS(expected_sinl, tokenizeAndStringify(code_sinl)); + + // #6629 + const char code[] = "class Foo { int sinf; Foo() : sinf(0) {} };"; + const char expected[] = "class Foo { int sinf ; Foo ( ) : sinf ( 0 ) { } } ;"; + ASSERT_EQUALS(expected, tokenizeAndStringify(code)); } void simplifyMathFunctions_ilogb() {