diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg
index 63dda17e4bc..ed9b886a539 100644
--- a/cfg/gnu.cfg
+++ b/cfg/gnu.cfg
@@ -597,7 +597,7 @@
-
+
-
@@ -1286,9 +1286,9 @@
-
+
-
@@ -1648,6 +1648,13 @@
+
+
+
+
+
+ false
+
diff --git a/test/cfg/gnu.c b/test/cfg/gnu.c
index 296a3cc0442..bc765880df1 100644
--- a/test/cfg/gnu.c
+++ b/test/cfg/gnu.c
@@ -28,6 +28,9 @@
#ifdef __gnu_linux__
#include
#endif
+#ifdef _GNU_SOURCE
+#include
+#endif
#include
#include
@@ -41,6 +44,34 @@ void unreachableCode_error(void) // #11197
}
#endif
+#ifdef _GNU_SOURCE
+void leakReturnValNotUsed_get_current_dir_name(void)
+{
+ // cppcheck-suppress leakReturnValNotUsed
+ get_current_dir_name();
+}
+
+void memleak_get_current_dir_name0(void)
+{
+ const char *const name = get_current_dir_name();
+ if (name)
+ {
+ // cppcheck-suppress memleak
+ return;
+ }
+}
+
+void memleak_get_current_dir_name1(void)
+{
+ const char *const name = get_current_dir_name();
+ if (name)
+ {
+ free(name);
+ return;
+ }
+}
+#endif
+
int nullPointer_gethostbyname2_r(const char* name, int af, struct hostent* ret, const char* buf, size_t buflen, struct hostent** result, const int* h_errnop)
{
// cppcheck-suppress nullPointer