diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 5681ef393..e32a75901 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -10036,7 +10036,7 @@ void Tokenizer::simplifyWhile0() if (Token::simpleMatch(tok->next()->link(), ") {")) { const Token *end = tok->next()->link()->next()->link(); - if (!findmatch(tok, end, "continue|break")) + if (!findmatch(tok, end, "%var% : ;")) { Token::eraseTokens(tok, end ? end->next() : 0); tok->deleteThis(); // delete "while" diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index f238ee2ee..34ce0ed80 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -6432,6 +6432,8 @@ private: // for (condition is always false) ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { int i; for (i = 0; i < 0; i++) { a; } }")); //ticket #3140 + ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { int i; for (i = 0; i < 0; i++) { foo(); break; } }")); + ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { int i; for (i = 0; i < 0; i++) { foo(); continue; } }")); ASSERT_EQUALS("void f ( ) { }", tok("void f() { for (int i = 0; i < 0; i++) { a; } }")); ASSERT_EQUALS("void f ( ) { }", tok("void f() { for (unsigned int i = 0; i < 0; i++) { a; } }")); ASSERT_EQUALS("void f ( ) { }", tok("void f() { for (long long i = 0; i < 0; i++) { a; } }"));