From c809367c20151240240df331de28d7dc3c4cef05 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:02:22 +0100 Subject: [PATCH 1/4] Update astutils.cpp --- lib/astutils.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/astutils.cpp b/lib/astutils.cpp index 922c734511a..41512d64c59 100644 --- a/lib/astutils.cpp +++ b/lib/astutils.cpp @@ -3091,8 +3091,6 @@ static const Token* findExpressionChangedImpl(const Token* expr, } bool global = false; if (tok->variable()) { - if (tok->variable()->isConst()) - return false; global = !tok->variable()->isLocal() && !tok->variable()->isArgument() && !(tok->variable()->isMember() && !tok->variable()->isStatic()); } else if (tok->isIncompleteVar() && !tok->isIncompleteConstant()) { From 27cad4839e9f4b8c511e935cf728770a6c782b89 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:06:36 +0100 Subject: [PATCH 2/4] Update testcondition.cpp --- test/testcondition.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/testcondition.cpp b/test/testcondition.cpp index d1ec9b1e17a..21882c1989a 100644 --- a/test/testcondition.cpp +++ b/test/testcondition.cpp @@ -5882,6 +5882,17 @@ class TestCondition : public TestFixture { " if (strlen(s2) > 0) {}\n" "}\n"); ASSERT_EQUALS("", errout_str()); + + check("void g(int*);\n" // #14428 + "int f(int* const p) {\n" + " int i = 0;\n" + " if (*p == 0)\n" + " g(p);\n" + " if (*p == 0)\n" + " i = 1;\n" + " return i;\n" + "}\n"); + ASSERT_EQUALS("", errout_str()); } void checkInvalidTestForOverflow() { From e9966372d058cf72dd80c23f5d1df36b171f70b0 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Tue, 10 Feb 2026 08:23:26 +0100 Subject: [PATCH 3/4] Update testcondition.cpp --- test/testcondition.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/testcondition.cpp b/test/testcondition.cpp index 21882c1989a..30e73cfd376 100644 --- a/test/testcondition.cpp +++ b/test/testcondition.cpp @@ -5893,6 +5893,17 @@ class TestCondition : public TestFixture { " return i;\n" "}\n"); ASSERT_EQUALS("", errout_str()); + + check("void g(const int*);\n" + "int f(const int* const p) {\n" + " int i = 0;\n" + " if (*p == 0)\n" + " g(p);\n" + " if (*p == 0)\n" + " i = 1;\n" + " return i;\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:6:9]: (style) The if condition is the same as the previous if condition [duplicateCondition]\n", errout_str()); } void checkInvalidTestForOverflow() { From eddc873e251f13f4521210d82f423e22062c590e Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Tue, 10 Feb 2026 08:29:19 +0100 Subject: [PATCH 4/4] Update testcondition.cpp --- test/testcondition.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/testcondition.cpp b/test/testcondition.cpp index 30e73cfd376..aee6a801d5e 100644 --- a/test/testcondition.cpp +++ b/test/testcondition.cpp @@ -5903,7 +5903,7 @@ class TestCondition : public TestFixture { " i = 1;\n" " return i;\n" "}\n"); - ASSERT_EQUALS("[test.cpp:6:9]: (style) The if condition is the same as the previous if condition [duplicateCondition]\n", errout_str()); + ASSERT_EQUALS("[test.cpp:4:12] -> [test.cpp:6:12]: (style) The if condition is the same as the previous if condition [duplicateCondition]\n", errout_str()); } void checkInvalidTestForOverflow() {