diff --git a/lib/tokenlist.cpp b/lib/tokenlist.cpp index 7039c72ef7e..b9bd45a54f7 100644 --- a/lib/tokenlist.cpp +++ b/lib/tokenlist.cpp @@ -492,6 +492,9 @@ static bool iscast(const Token *tok, bool cpp) if (Token::simpleMatch(tok->link(), ") ( )")) return false; + if (Token::Match(tok->link(), ") %assign%")) + return false; + if (tok->previous() && tok->previous()->isName() && tok->previous()->str() != "return" && (!cpp || !Token::Match(tok->previous(), "delete|throw"))) return false; diff --git a/test/cli/fuzz-crash/crash-d6609399a4398aed92f5ac9e53aa0554d9f8bbd6 b/test/cli/fuzz-crash/crash-d6609399a4398aed92f5ac9e53aa0554d9f8bbd6 new file mode 100644 index 00000000000..1563d4c95bd --- /dev/null +++ b/test/cli/fuzz-crash/crash-d6609399a4398aed92f5ac9e53aa0554d9f8bbd6 @@ -0,0 +1 @@ +_(){w((char)=e)} \ No newline at end of file