Fixed #1352 (false positive: uninitialized variable)
This commit is contained in:
parent
70620b6f80
commit
0a31e5e3ee
|
@ -4382,7 +4382,8 @@ bool Tokenizer::simplifyKnownVariables()
|
||||||
--indentlevel3;
|
--indentlevel3;
|
||||||
if (indentlevel3 < indentlevel)
|
if (indentlevel3 < indentlevel)
|
||||||
{
|
{
|
||||||
if (Token::Match(tok2->tokAt(-3), "%var% = & %var% ;"))
|
if (Token::Match(tok2->tokAt(-7), "%type% * %var% ; %var% = & %var% ;") &&
|
||||||
|
tok2->tokAt(-5)->str() == tok2->tokAt(-3)->str())
|
||||||
{
|
{
|
||||||
tok2 = tok2->tokAt(-4);
|
tok2 = tok2->tokAt(-4);
|
||||||
Token::eraseTokens(tok2, tok2->tokAt(5));
|
Token::eraseTokens(tok2, tok2->tokAt(5));
|
||||||
|
|
|
@ -175,6 +175,7 @@ private:
|
||||||
|
|
||||||
TEST_CASE(pointeralias1);
|
TEST_CASE(pointeralias1);
|
||||||
TEST_CASE(pointeralias2);
|
TEST_CASE(pointeralias2);
|
||||||
|
TEST_CASE(pointeralias3);
|
||||||
|
|
||||||
TEST_CASE(reduceConstness);
|
TEST_CASE(reduceConstness);
|
||||||
|
|
||||||
|
@ -3357,6 +3358,25 @@ private:
|
||||||
ASSERT_EQUALS(expected, tok(code));
|
ASSERT_EQUALS(expected, tok(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pointeralias3()
|
||||||
|
{
|
||||||
|
const char code[] = "void f()\n"
|
||||||
|
"{\n"
|
||||||
|
" int i, j, *p;\n"
|
||||||
|
" if (ab) p = &i;\n"
|
||||||
|
" else p = &j;\n"
|
||||||
|
" *p = 0;\n"
|
||||||
|
"}\n";
|
||||||
|
const char expected[] = "void f ( ) "
|
||||||
|
"{"
|
||||||
|
" int i ; int j ; int * p ;"
|
||||||
|
" if ( ab ) { p = & i ; }"
|
||||||
|
" else { p = & j ; }"
|
||||||
|
" * p = 0 ; "
|
||||||
|
"}";
|
||||||
|
ASSERT_EQUALS(expected, tok(code));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void reduceConstness()
|
void reduceConstness()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue