diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index bb51629c1..c5ec6ab96 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -5672,6 +5672,9 @@ void Tokenizer::simplifyIfNotNull() continue; } + if (Token::Match(tok, "==|!= (")) + tok = tok->linkAt(1); + if (Token::Match(tok, "(|&&|%oror%")) { tok = tok->next(); diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 37fb656c3..e65b84bcb 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -1042,6 +1042,9 @@ private: ASSERT_EQUALS("( ! p )", tokenizeAndStringify("( 0UL == p )", true)); ASSERT_EQUALS("( ! p )", tokenizeAndStringify("( 0ul == p )", true)); ASSERT_EQUALS("( ! p )", tokenizeAndStringify("( 0l == p )", true)); + + // not pointer + ASSERT_EQUALS("( x != ( y != 0 ) )", tokenizeAndStringify("( x != ( y != 0 ) )", false)); }