ValueFlow: Fixed nullpointer FP warning in checksizeof
This commit is contained in:
parent
263582ddbd
commit
970fda9e79
|
@ -825,6 +825,10 @@ static bool valueFlowForward(Token * const startToken,
|
||||||
errorLogger,
|
errorLogger,
|
||||||
tok2,
|
tok2,
|
||||||
"no simplification of " + tok2->str() + " within " + (Token::Match(parent,"[?:]") ? "?:" : parent->str()) + " expression");
|
"no simplification of " + tok2->str() + " within " + (Token::Match(parent,"[?:]") ? "?:" : parent->str()) + " expression");
|
||||||
|
while (parent && parent->str() != "(")
|
||||||
|
parent = parent->astParent();
|
||||||
|
if (parent)
|
||||||
|
tok2 = const_cast<Token*>(parent->link());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -940,6 +940,23 @@ private:
|
||||||
"}";
|
"}";
|
||||||
ASSERT_EQUALS(true, testValueOfX(code, 3U, 4));
|
ASSERT_EQUALS(true, testValueOfX(code, 3U, 4));
|
||||||
|
|
||||||
|
// protected usage with &&
|
||||||
|
code = "void f(const Token* x) {\n"
|
||||||
|
" if (x) {}\n"
|
||||||
|
" for (; x && \n"
|
||||||
|
" x->str() != y; x = x->next()) {}\n"
|
||||||
|
"}";
|
||||||
|
ASSERT_EQUALS(true, testValueOfX(code, 3U, 0));
|
||||||
|
ASSERT_EQUALS(false, testValueOfX(code, 4U, 0));
|
||||||
|
|
||||||
|
code = "void f(const Token* x) {\n"
|
||||||
|
" if (x) {}\n"
|
||||||
|
" if (x && \n"
|
||||||
|
" x->str() != y) {}\n"
|
||||||
|
"}";
|
||||||
|
TODO_ASSERT_EQUALS(true, false, testValueOfX(code, 3U, 0));
|
||||||
|
ASSERT_EQUALS(false, testValueOfX(code, 4U, 0));
|
||||||
|
|
||||||
// TODO: float
|
// TODO: float
|
||||||
code = "void f(float x) {\n"
|
code = "void f(float x) {\n"
|
||||||
" if (x == 0.5) {}\n"
|
" if (x == 0.5) {}\n"
|
||||||
|
|
Loading…
Reference in New Issue