From a36539e0fc02c1d694d13f3e8bbd5312516d8c82 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:53:20 +0100 Subject: [PATCH 1/2] Update valueflow.cpp --- lib/valueflow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index e824ba75a5a..fdf7394aa3a 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -3682,7 +3682,7 @@ static void valueFlowSymbolicOperators(const SymbolDatabase& symboldatabase, con continue; if (vartok->exprId() == 0) continue; - if (Token::Match(tok, "<<|>>|/") && !astIsLHS(vartok)) + if (Token::Match(tok, "<<|>>|/|-") && !astIsLHS(vartok)) continue; if (Token::Match(tok, "<<|>>|^|+|-|%or%") && constant->intvalue != 0) continue; From 27896b1d875df6b6f9b1c0d3a1bafbf462b2051c Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:55:27 +0100 Subject: [PATCH 2/2] Update testvalueflow.cpp --- test/testvalueflow.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/testvalueflow.cpp b/test/testvalueflow.cpp index 6eb807bdd11..36410a60508 100644 --- a/test/testvalueflow.cpp +++ b/test/testvalueflow.cpp @@ -8910,6 +8910,18 @@ class TestValueFlow : public TestFixture { " return x;\n" "}\n"; ASSERT_EQUALS(false, testValueOfXKnown(code, 3U, "a", 0)); + + code = "void f(int n) {\n" + " int x = 0 - n;\n" + " return x;\n" + "}\n"; + ASSERT_EQUALS(false, testValueOfX(code, 3U, "n", ValueFlow::Value::ValueType::SYMBOLIC)); + + code = "void f(int n) {\n" + " int x = n - 0;\n" + " return x;\n" + "}\n"; + ASSERT_EQUALS(true, testValueOfX(code, 3U, "n", ValueFlow::Value::ValueType::SYMBOLIC)); } void valueFlowSymbolicStrlen()