From 1e2f1bac1f66f0826d998c9c61ee07afe02f76c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 11 May 2019 15:50:30 +0200 Subject: [PATCH] Fixed #8921 (Broken AST - mem = (void*)(new char)) --- lib/tokenlist.cpp | 2 +- test/testtokenize.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/tokenlist.cpp b/lib/tokenlist.cpp index 300c590c6..093ddc550 100644 --- a/lib/tokenlist.cpp +++ b/lib/tokenlist.cpp @@ -403,7 +403,7 @@ static bool iscast(const Token *tok) if (Token::Match(tok, "( (| typeof (") && Token::Match(tok->link(), ") %num%")) return true; - if (Token::Match(tok->link(), ") }|)|]")) + if (Token::Match(tok->link(), ") }|)|]|;")) return false; if (Token::Match(tok->link(), ") %cop%") && !Token::Match(tok->link(), ") [&*+-~]")) diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 01e365d87..5df2dc211 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -7395,6 +7395,8 @@ private: ASSERT_EQUALS("AB||", testAst("(A)||(B)")); ASSERT_EQUALS("abc[1&=", testAst("a = (b[c]) & 1;")); ASSERT_EQUALS("abc::(=", testAst("a = (b::c)();")); + + ASSERT_EQUALS("pcharnew(=", testAst("p = (void *)(new char);")); } void astlambda() {