From 35c72db251d56848696ca95038788af8007717dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Tue, 16 Nov 2010 20:07:41 +0100 Subject: [PATCH] Uninitialized variables: Fixed simple undetected case for '= %var% -' --- lib/checkuninitvar.cpp | 2 +- test/testuninitvar.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 52d9834b1..940c93f0e 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -465,7 +465,7 @@ private: } // Used.. - if (Token::Match(tok.previous(), "[[(,+-*/] %var% []),;+-*/]")) + if (Token::Match(tok.previous(), "[[(,+-*/=] %var% []),;+-*/]")) { use(checks, &tok); return &tok; diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 546638ad4..d9b396e4f 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -73,6 +73,12 @@ private: "}\n"); ASSERT_EQUALS("[test.cpp:3]: (error) Uninitialized variable: a\n", errout.str()); + checkUninitVar("void foo() {\n" + " int a;\n" + " b = a - c;\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:3]: (error) Uninitialized variable: a\n", errout.str()); + // dereferencing uninitialized pointer.. checkUninitVar("static void foo()\n" "{\n"