From 37c89a6b702d6783bdb67f055b0ebc2246f8e72c Mon Sep 17 00:00:00 2001 From: Martin Ettl Date: Sun, 11 Jan 2015 10:12:39 +0100 Subject: [PATCH] Fixed #6311: Add support for GNU get_current_dir_name(). --- cfg/gnu.cfg | 7 +++++++ test/testmemleak.cpp | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 cfg/gnu.cfg diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg new file mode 100644 index 000000000..04dc7570b --- /dev/null +++ b/cfg/gnu.cfg @@ -0,0 +1,7 @@ + + + + free + get_current_dir_name + + diff --git a/test/testmemleak.cpp b/test/testmemleak.cpp index 4a08a6f5c..d931dfea1 100644 --- a/test/testmemleak.cpp +++ b/test/testmemleak.cpp @@ -369,6 +369,8 @@ private: // test that the cfg files are configured correctly TEST_CASE(posixcfg); TEST_CASE(posixcfg_mmap); + + TEST_CASE(gnucfg); } std::string getcode(const char code[], const char varname[], bool classfunc=false) { @@ -4272,6 +4274,21 @@ private: ASSERT_EQUALS("[test.cpp:5]: (error) Memory leak: p\n", errout.str()); } + void gnucfg() { + Settings settings; + settings.standards.posix = true; + LOAD_LIB_2(settings.library, "gnu.cfg"); + const char code[] = "void leak() {\n" + " char * p = get_current_dir_name();\n" // memory leak + "}\n" + "void noLeak() {\n" + " char * p = get_current_dir_name;\n" + " free(p)\n;" + "}"; + check(code, &settings); + ASSERT_EQUALS("[test.cpp:3]: (error) Memory leak: p\n", errout.str()); + } + // Test that posix.cfg is configured correctly void posixcfg() { Settings settings;