diff --git a/lib/checkstl.cpp b/lib/checkstl.cpp index 5dde8be54..d46cb3a17 100644 --- a/lib/checkstl.cpp +++ b/lib/checkstl.cpp @@ -1535,14 +1535,10 @@ void CheckStl::readingEmptyStlContainer() if (i->type != Scope::eFunction) continue; - const Token* restartTok = nullptr; for (const Token *tok = i->classStart->next(); tok != i->classEnd; tok = tok->next()) { - if (Token::Match(tok, "for|while")) { // Loops and end of scope clear the sets. - restartTok = tok->linkAt(1); // Check condition to catch looping over empty containers - } else if (tok == restartTok || Token::Match(tok, "do|}")) { + if (Token::Match(tok, "for|while|do|}")) { // Loops and end of scope clear the sets. empty_map.clear(); empty_nonmap.clear(); - restartTok = nullptr; } if (!tok->varId()) diff --git a/man/manual.docbook b/man/manual.docbook index 221b2d24a..d866d89f0 100644 --- a/man/manual.docbook +++ b/man/manual.docbook @@ -305,7 +305,7 @@ cppcheck -DA --force file.c <cppcheck version="1.66"> <errors> <error id="someError" severity="error" msg="short error text" - verbose="long error text" inconclusive="true"> + verbose="long error text" inconclusive="true" cwe="312"> <location file="file.c" line="1"/> </error> </errors> @@ -361,6 +361,15 @@ cppcheck -DA --force file.c inconclusive. + + + cwe + + + CWE ID for message. This attribute is only used + when the CWE ID for the message is known. + + diff --git a/test/teststl.cpp b/test/teststl.cpp index 0419252e7..00ae0ceab 100644 --- a/test/teststl.cpp +++ b/test/teststl.cpp @@ -2664,13 +2664,6 @@ private: " std::string strValue2 = CMap[1];\n" "}\n", true); ASSERT_EQUALS("[test.cpp:3]: (style, inconclusive) Reading from empty STL container\n", errout.str()); - - // #4306 - check("void f(std::vector v) {\n" - " v.clear();\n" - " for(int i = 0; i < v.size(); i++) { cout << v[i]; }\n" - "}", true); - ASSERT_EQUALS("[test.cpp:3]: (style, inconclusive) Reading from empty STL container\n", errout.str()); } };