Fixed #9901 (False positive: variable is assigned value that is not used 'if (--N == 0)')
This commit is contained in:
parent
0ec77879ea
commit
7bb82c5df7
|
@ -1132,6 +1132,10 @@ void CheckUnusedVar::checkFunctionVariableUsage()
|
|||
const bool isIncrementOrDecrement = (tok->tokType() == Token::Type::eIncDecOp);
|
||||
if (!isAssignment && !isInitialization && !isIncrementOrDecrement)
|
||||
continue;
|
||||
|
||||
if (isIncrementOrDecrement && tok->astParent() && precedes(tok, tok->astOperand1()))
|
||||
continue;
|
||||
|
||||
if (tok->isName()) {
|
||||
if (mTokenizer->isCPP()) {
|
||||
// do not check RAII/scope_lock objects
|
||||
|
|
|
@ -117,6 +117,7 @@ private:
|
|||
TEST_CASE(localvar55);
|
||||
TEST_CASE(localvar56);
|
||||
TEST_CASE(localvar57); // #8974 - increment
|
||||
TEST_CASE(localvar58); // #9901 - increment false positive
|
||||
TEST_CASE(localvarloops); // loops
|
||||
TEST_CASE(localvaralias1);
|
||||
TEST_CASE(localvaralias2); // ticket #1637
|
||||
|
@ -2270,6 +2271,20 @@ private:
|
|||
ASSERT_EQUALS("[test.cpp:4]: (style) Variable 'x' is assigned a value that is never used.\n", errout.str());
|
||||
}
|
||||
|
||||
void localvar58() { // #9901 - increment false positive
|
||||
functionVariableUsage("void f() {\n"
|
||||
" int x = 0;\n"
|
||||
" if (--x > 0) {}\n"
|
||||
"}");
|
||||
ASSERT_EQUALS("", errout.str());
|
||||
|
||||
functionVariableUsage("void f() {\n"
|
||||
" int x = 0;\n"
|
||||
" if (x-- > 0) {}\n"
|
||||
"}");
|
||||
ASSERT_EQUALS("[test.cpp:3]: (style) Variable 'x' is assigned a value that is never used.\n", errout.str());
|
||||
}
|
||||
|
||||
void localvarloops() {
|
||||
// loops
|
||||
functionVariableUsage("void fun() {\n"
|
||||
|
|
Loading…
Reference in New Issue