From f7de7d810c4b245b4d1364fd1008a7594ce3cfb3 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Wed, 7 Oct 2026 13:03:22 +0200 Subject: [PATCH 1/2] Update checkunusedvar.cpp --- lib/checkunusedvar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/checkunusedvar.cpp b/lib/checkunusedvar.cpp index 26368064c63..2add1e6eebc 100644 --- a/lib/checkunusedvar.cpp +++ b/lib/checkunusedvar.cpp @@ -1009,7 +1009,7 @@ void CheckUnusedVarImpl::checkFunctionVariableUsage_iterateScopes(const Scope* c const Token * const equal = skipBracketsAndMembers(tok->next()); // checked for chained assignments - if (tok != start && equal && equal->str() == "=") { + if (tok != start && (Token::simpleMatch(equal, "=") || (start->astParent() && Token::simpleMatch(start->astParent()->astParent(), "=")))) { const nonneg int varId = tok->varId(); const Variables::VariableUsage * const var = variables.find(varId); From dddc7c83a0c5ca85f4f1a03a6d65c5b3d7c8005d Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Wed, 7 Oct 2026 13:04:12 +0200 Subject: [PATCH 2/2] Update testunusedvar.cpp --- test/testunusedvar.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/testunusedvar.cpp b/test/testunusedvar.cpp index f25d544c906..78ecd45ccef 100644 --- a/test/testunusedvar.cpp +++ b/test/testunusedvar.cpp @@ -3370,6 +3370,14 @@ class TestUnusedVar : public TestFixture { " return a;\n" "}\n"); ASSERT_EQUALS("[test.cpp:5:14]: (style) Variable 'b[c]' is assigned a value that is never used. [unreadVariable]\n", errout_str()); + + functionVariableUsage("int f() {\n" // #14769 + " int i = 2;\n" + " const int *a, *c;\n" + " a = c = &i;\n" + " return *a;\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:4:11]: (style) Variable 'c' is assigned a value that is never used. [unreadVariable]\n", errout_str()); } void localvar24() { // ticket #1803