Skip to content

Commit 64081bb

Browse files
committed
Fix #4478: FP: Uninitialized variable
1 parent f1ddd1a commit 64081bb

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

Diff for: lib/checkuninitvar.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1653,6 +1653,8 @@ void CheckUninitVar::valueFlowUninit()
16531653
if (!v->subexpressions.empty() && usage == ExprUsage::PassedByReference)
16541654
continue;
16551655
if (usage != ExprUsage::Used) {
1656+
if (tok->isUnaryOp("&") && !tok->astParent())
1657+
continue;
16561658
if (!(Token::Match(tok->astParent(), ". %name% (|[") && uninitderef) &&
16571659
isVariableChanged(tok, v->indirect, *mSettings))
16581660
continue;

Diff for: test/testuninitvar.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -4304,7 +4304,7 @@ class TestUninitVar : public TestFixture {
43044304
" long a;\n"
43054305
" &a;\n"
43064306
"}");
4307-
TODO_ASSERT_EQUALS("", "[test.cpp:3]: (error) Uninitialized variable: &a\n", errout_str());
4307+
ASSERT_EQUALS("", errout_str());
43084308

43094309
valueFlowUninit("void f() {\n" // #4717 - ({})
43104310
" int a = ({ long b = (long)(123); 2 + b; });\n"

0 commit comments

Comments
 (0)