Comment out code in valueFlowArray. There was too many false positives.
This commit is contained in:
parent
39a96a5a16
commit
39ceb53578
|
@ -1019,7 +1019,9 @@ static void valueFlowArray(TokenList *tokenlist)
|
||||||
!tok->variable()->isStlType()) {
|
!tok->variable()->isStlType()) {
|
||||||
ValueFlow::Value value{1};
|
ValueFlow::Value value{1};
|
||||||
value.setKnown();
|
value.setKnown();
|
||||||
setTokenValue(tok, value, tokenlist->getSettings());
|
// TODO : this leads to too many false positives so it is commented out.
|
||||||
|
// See for instance https://github.com/danmar/cppcheck/commit/025881cf35fdde1299d16a09059e7305f8c9bd13
|
||||||
|
// setTokenValue(tok, value, tokenlist->getSettings());
|
||||||
}
|
}
|
||||||
const std::map<unsigned int, const Token *>::const_iterator it = constantArrays.find(tok->varId());
|
const std::map<unsigned int, const Token *>::const_iterator it = constantArrays.find(tok->varId());
|
||||||
if (it != constantArrays.end()) {
|
if (it != constantArrays.end()) {
|
||||||
|
|
|
@ -2158,7 +2158,8 @@ private:
|
||||||
" X(do);\n"
|
" X(do);\n"
|
||||||
" if (x > 100) {}\n"
|
" if (x > 100) {}\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2] -> [test.cpp:4]: (style) Condition 'x>100' is always false\n", errout.str());
|
// TODO: we should probably throw unknownMacro InternalError. Complain that the macro X must be defined. We cant check the code well without the definition.
|
||||||
|
TODO_ASSERT_EQUALS("[test.cpp:2] -> [test.cpp:4]: (style) Condition 'x>100' is always false\n", "", errout.str());
|
||||||
|
|
||||||
check("void f(const int *i) {\n"
|
check("void f(const int *i) {\n"
|
||||||
" if (!i) return;\n"
|
" if (!i) return;\n"
|
||||||
|
@ -2524,7 +2525,7 @@ private:
|
||||||
" int buf[42];\n"
|
" int buf[42];\n"
|
||||||
" if( buf != 0) {}\n"
|
" if( buf != 0) {}\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
ASSERT_EQUALS("[test.cpp:3]: (style) Condition 'buf!=0' is always true\n", errout.str());
|
TODO_ASSERT_EQUALS("[test.cpp:3]: (style) Condition 'buf!=0' is always true\n", "", errout.str()); // #8924
|
||||||
|
|
||||||
// Avoid FP when condition comes from macro
|
// Avoid FP when condition comes from macro
|
||||||
check("#define NOT !\n"
|
check("#define NOT !\n"
|
||||||
|
|
Loading…
Reference in New Issue