Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/checkuninitvar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ static bool isVariableUsed(const Token *tok, const Variable& var)
return isVariableUsed(tok->astOperand1(),var) || isVariableUsed(tok->astOperand2(),var);
if (tok->varId() != var.declarationId())
return false;
if (!var.isArray())
if (!var.isArray() && !var.isPointer())
return true;

const Token *parent = tok->astParent();
Expand Down
13 changes: 11 additions & 2 deletions test/testuninitvar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ class TestUninitVar : public TestFixture {
TEST_CASE(uninitvar_unconditionalTry);
TEST_CASE(uninitvar_funcptr); // #6404
TEST_CASE(uninitvar_operator); // #6680
TEST_CASE(uninitvar_ternaryexpression); // #4683
TEST_CASE(uninitvar_ternaryexpression1); // #4683
TEST_CASE(uninitvar_ternaryexpression2); // #14729
TEST_CASE(uninitvar_pointertoarray);
TEST_CASE(uninitvar_cpp11ArrayInit); // #7010
TEST_CASE(uninitvar_rangeBasedFor); // #7078
Expand Down Expand Up @@ -5447,7 +5448,7 @@ class TestUninitVar : public TestFixture {
ASSERT_EQUALS("", errout_str());
}

void uninitvar_ternaryexpression() { // #4683
void uninitvar_ternaryexpression1() { // #4683
checkUninitVar("struct B { int asd; };\n"
"int f() {\n"
" int a=0;\n"
Expand All @@ -5461,6 +5462,14 @@ class TestUninitVar : public TestFixture {
ASSERT_EQUALS("", errout_str());
}

void uninitvar_ternaryexpression2() { // #14729
checkUninitVar("void f(bool b, int i) {\n"
" int *p = (int*) malloc(4);\n"
" int *q = b ? p : &i;\n"
"}\n");
ASSERT_EQUALS("", errout_str());
}

void uninitvar_rangeBasedFor() {
checkUninitVar("void function(Entry& entry) {\n" // #7078
" for (auto* expr : entry.exprs) {\n"
Expand Down
Loading