From 9523f0e2e8770107ec899d18512f4d03251506ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 19 May 2007 17:26:28 +0000 Subject: [PATCH] Tests: Added "testmemcheck4", memory leak from a strdup --- main.cpp | 4 ++-- testmemcheck4/out.err | 1 + testmemcheck4/testmemcheck4.cpp | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 testmemcheck4/out.err create mode 100644 testmemcheck4/testmemcheck4.cpp diff --git a/main.cpp b/main.cpp index a8f3ba441..f27c80efe 100644 --- a/main.cpp +++ b/main.cpp @@ -699,7 +699,7 @@ void CreateStatementList() if ( ismalloc ) AppendStatement(STATEMENT::MALLOC, tok2, varname); - if ( match(rs,"new type ;") ) + else if ( match(rs,"new type ;") ) AppendStatement(STATEMENT::NEW, tok2, varname); else if ( match(rs, "new type (") ) @@ -1128,7 +1128,7 @@ void CheckMemoryLeak() if (varlist[i]->indentlevel != indentlevel) continue; - if (varlist[i]->value == _variable::New || varlist[i]->value == _variable::NewA) + if (varlist[i]->value == _variable::Malloc || varlist[i]->value == _variable::New || varlist[i]->value == _variable::NewA) { std::ostringstream ostr; ostr << FileLine(it->Token) << ": Memory leak:" << VariableNames[varlist[i]->varindex]; diff --git a/testmemcheck4/out.err b/testmemcheck4/out.err new file mode 100644 index 000000000..0f8adf46b --- /dev/null +++ b/testmemcheck4/out.err @@ -0,0 +1 @@ +[testmemcheck4\testmemcheck4.cpp:10]: Memory leak:str diff --git a/testmemcheck4/testmemcheck4.cpp b/testmemcheck4/testmemcheck4.cpp new file mode 100644 index 000000000..dbeca2b44 --- /dev/null +++ b/testmemcheck4/testmemcheck4.cpp @@ -0,0 +1,12 @@ + + +void f() +{ + for (int i = 0; i < j; i++) + { + char *str = strdup("hello"); + if (condition) + continue; + } +} +