From 167530bf604f4967ef19d2e4ff92d7f8d1d7e46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 15 Dec 2011 20:15:37 +0100 Subject: [PATCH] Uninitialized variable: Fixed test failure. Ticket: #3369 --- lib/checkuninitvar.cpp | 2 +- test/testuninitvar.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index d382d7f83..20c6e90de 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -1132,7 +1132,7 @@ bool CheckUninitVar::checkScopeForVariable(const Token *tok, const unsigned int if (Token::Match(tok, "return|break|continue|throw")) ret = true; else if (ret && tok->str() == ";") - return false; + return true; // variable is seen.. if (tok->varId() == varid) { diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 25c82371e..037c7bd32 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -1774,6 +1774,14 @@ private: "}\n"); ASSERT_EQUALS("", errout.str()); + checkUninitVar2("void f() {\n" + " int x;\n" + " return;\n" + "err:\n" + " return x;\n" + "}\n"); + ASSERT_EQUALS("", errout.str()); + // for, while checkUninitVar2("void f() {\n" " int x;\n"