diff --git a/cfg/gtk.cfg b/cfg/gtk.cfg
index 1d8fe8125..160d93c71 100644
--- a/cfg/gtk.cfg
+++ b/cfg/gtk.cfg
@@ -64,6 +64,18 @@
+
+
+
+
+
+
+
+
+
+
@@ -2496,13 +2508,33 @@
false
+
-
false
+
+
+
+
+
+
+ 0:
+
+
-
false
+
+
+
+
+
+ 0:
+
+
+
+
+ 0:
+
@@ -2983,6 +3015,32 @@
false
+
+
+
+ false
+
+
+
+
+ 0:
+
+
+
+
+
+ false
+
+
+
+ 0:
+
+
+
+
+ 0:
+
+
false
@@ -4151,12 +4209,29 @@
false
+
false
-
+
+
+
+ 0:
+
+
+
+
+
+
+ false
+
+
+
+ 0:
+
+
0:
diff --git a/test/cfg/gtk.c b/test/cfg/gtk.c
index a46d04f7c..3858b3aa1 100644
--- a/test/cfg/gtk.c
+++ b/test/cfg/gtk.c
@@ -77,3 +77,39 @@ void g_alloca_test()
char * pBuf1 = g_alloca(5);
pBuf1[0] = '\0';
}
+
+void g_new_test()
+{
+ struct a {
+ int b;
+ };
+ // valid
+ struct a * pNew1 = g_new(struct a, 5);
+ printf("%p", pNew1);
+ g_free(pNew1);
+
+ // cppcheck-suppress leakReturnValNotUsed
+ g_new(struct a, 1);
+
+ struct a * pNew2 = g_new(struct a, 2);
+ printf("%p", pNew2);
+ // cppcheck-suppress memleak
+}
+
+void g_try_new0_test()
+{
+ struct a {
+ int b;
+ };
+ // valid
+ struct a * pNew1 = g_try_new0(struct a, 5);
+ printf("%p", pNew1);
+ g_free(pNew1);
+
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_new0(struct a, 1);
+
+ struct a * pNew2 = g_try_new0(struct a, 2);
+ printf("%p", pNew2);
+ // cppcheck-suppress memleak
+}