From cd94d50526392297a3af414d36611646e3024d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 24 Sep 2009 22:40:18 +0200 Subject: [PATCH] Memory leaks: fixed a TODO_ASSERT_EQUALS --- src/checkmemoryleak.cpp | 2 +- test/testmemleak.cpp | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/checkmemoryleak.cpp b/src/checkmemoryleak.cpp index 1016c94fe..b4a59a1e9 100644 --- a/src/checkmemoryleak.cpp +++ b/src/checkmemoryleak.cpp @@ -1017,7 +1017,7 @@ Token *CheckMemoryLeakInFunction::getcode(const Token *tok, std::listtokAt(2); + tok = tok->next()->link(); continue; } } diff --git a/test/testmemleak.cpp b/test/testmemleak.cpp index af18f5a01..80e0dbe13 100644 --- a/test/testmemleak.cpp +++ b/test/testmemleak.cpp @@ -338,9 +338,7 @@ private: ASSERT_EQUALS(";;if(!var){}else{}", getcode("char *s; if (!s) { } else { }", "s")); ASSERT_EQUALS(";;if{}", getcode("char *s; if (a && s) { }", "s")); ASSERT_EQUALS(";;if(!var){}", getcode("char *s; if (a && !s) { }", "s")); - - // There are missing semicolons in the extracted code - TODO_ASSERT_EQUALS(";;;if{dealloc;}if{dealloc;return;}assign;returnuse;", getcode("char *buf, *tmp; tmp = realloc(buf, 40); if (!(tmp)) { free(buf); return; } buf = tmp; return buf;", "buf")); + ASSERT_EQUALS(";;;if{dealloc;};if{dealloc;return;}assign;returnuse;", getcode("char *buf, *tmp; tmp = realloc(buf, 40); if (!(tmp)) { free(buf); return; } buf = tmp; return buf;", "buf")); // switch.. ASSERT_EQUALS(";;switch{case;break;};", getcode("char *s; switch(a){case 1: break;};", "s")); @@ -1527,17 +1525,17 @@ private: { check("void foo()\n" "{\n" - "char *buf;\n" - "char *new_buf;\n" - "buf = calloc( 10 );\n" - "new_buf = realloc ( buf, 20);\n" - "if ( !new_buf )\n" - " free(buf);\n" - "else\n" - " free(new_buf);\n" + " char *buf;\n" + " char *new_buf;\n" + " buf = calloc( 10 );\n" + " new_buf = realloc ( buf, 20);\n" + " if ( !new_buf )\n" + " free(buf);\n" + " else\n" + " free(new_buf);\n" "}\n", true); - ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("[test.cpp:11]: (possible error) Memory leak: buf\n", errout.str()); } void realloc6()