diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 2bda092a0..5529eec60 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -1806,7 +1806,7 @@ bool Tokenizer::tokenize(std::istream &code, const Token *last = tok->next()->link(); if (start != tok) { last = last->next(); - while (last && !Token::Match(last, "[;{}]")) + while (last && !Token::Match(last->next(), "[;{}()]")) last = last->next(); } if (start && last) { diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 0f1620ae0..349648ea4 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -746,7 +746,8 @@ private: // #4725 - ^{} void tokenize28() { ASSERT_EQUALS("void f ( ) { asm ( \"^{}\" ) ; }", tokenizeAndStringify("void f() { ^{} }")); - ASSERT_EQUALS("void f ( ) { asm ( \"x(^{});\" ) ; }", tokenizeAndStringify("void f() { x(^{}); }")); + ASSERT_EQUALS("void f ( ) { asm ( \"x(^{})\" ) ; }", tokenizeAndStringify("void f() { x(^{}); }")); + ASSERT_EQUALS("; asm ( \"voidf^{return}intmain\" ) ; ( ) { }", tokenizeAndStringify("; void f ^ { return } int main ( ) { }")); } void wrong_syntax1() {