diff --git a/lib/tokenlist.cpp b/lib/tokenlist.cpp index 16f6ef022..d57883cb8 100644 --- a/lib/tokenlist.cpp +++ b/lib/tokenlist.cpp @@ -1564,14 +1564,17 @@ void TokenList::validateAst() const safeAstTokens.insert(tok); } + // Don't check templates + if (tok->str() == "<" && tok->link()) { + tok = tok->link(); + continue; + } + // Check binary operators if (Token::Match(tok, "%or%|%oror%|%assign%|%comp%")) { // Skip lambda captures if (Token::Match(tok, "= ,|]")) continue; - // Don't check templates - if (tok->link()) - continue; // Skip pure virtual functions if (Token::simpleMatch(tok->previous(), ") = 0")) continue; diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index ecf55d68e..9a832a207 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -8228,6 +8228,8 @@ private: " d e = {(p1)...};\n" " }\n" "};\n")); + + ASSERT_NO_THROW(tokenizeAndStringify("a()==3;")); } void checkNamespaces() {