diff --git a/cfg/gtk.cfg b/cfg/gtk.cfg
index 9cc6aa0f0..300d3ece2 100644
--- a/cfg/gtk.cfg
+++ b/cfg/gtk.cfg
@@ -393,9 +393,11 @@
g_key_file_get_start_group
g_key_file_to_data
g_malloc
+ g_realloc
g_malloc0
g_malloc0_n
g_malloc_n
+ g_realloc_n
g_memdup
g_path_get_basename
g_path_get_dirname
@@ -414,9 +416,11 @@
g_strnfill
g_time_val_to_iso8601
g_try_malloc
+ g_try_realloc
g_try_malloc0
g_try_malloc0_n
g_try_malloc_n
+ g_try_realloc_n
g_ucs4_to_utf16
g_ucs4_to_utf8
g_unicode_canonical_decomposition
@@ -441,10 +445,6 @@
g_key_file_get_integer_list
g_key_file_get_double_list
g_key_file_get_comment
- g_new
- g_new0
- g_try_new
- g_try_new0
g_dbus_proxy_get_name_owner
g_file_info_get_attribute_as_string
g_file_attribute_matcher_to_string
@@ -3646,6 +3646,7 @@
false
+
@@ -3658,6 +3659,7 @@
false
+
0:
@@ -3668,13 +3670,33 @@
0:
+
-
+
+
false
+
+
+
+
+ 0:
+
+
-
+
+
false
+
+
+
+ 0:
+
+
+
+
+ 0:
+
@@ -4912,6 +4934,7 @@
+
@@ -4923,6 +4946,7 @@
+
0:
diff --git a/test/cfg/gtk.c b/test/cfg/gtk.c
index 7abb4991f..292a5f2a4 100644
--- a/test/cfg/gtk.c
+++ b/test/cfg/gtk.c
@@ -57,10 +57,157 @@ void validCode(int argInt)
void g_malloc_test()
{
+ // cppcheck-suppress ignoredReturnValue
// cppcheck-suppress leakReturnValNotUsed
g_malloc(8);
gpointer gpt = g_malloc(1);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_malloc0_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_malloc0(8);
+
+ gpointer gpt = g_malloc0(1);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_malloc_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_malloc_n(8, 1);
+
+ gpointer gpt = g_malloc_n(1, 2);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_malloc0_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_malloc0_n(8, 1);
+
+ gpointer gpt = g_malloc0_n(1, 2);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_malloc_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_malloc(8);
+
+ gpointer gpt = g_try_malloc(1);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_malloc0_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_malloc0(8);
+
+ gpointer gpt = g_try_malloc0(1);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_malloc_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_malloc_n(8, 1);
+
+ gpointer gpt = g_try_malloc_n(1, 2);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_malloc0_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_malloc0_n(8, 1);
+
+ gpointer gpt = g_try_malloc0_n(1, 2);
+
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_realloc_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_realloc(NULL, 1);
+
+ gpointer gpt = g_malloc(1);
+ gpt = g_realloc(gpt, 2); // No memleakOnRealloc since g_realloc aborts if it fails
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_realloc_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_realloc_n(NULL, 1, 2);
+
+ gpointer gpt = g_malloc_n(1, 2);
+ gpt = g_realloc_n(gpt, 2, 3); // No memleakOnRealloc since g_realloc_n aborts if it fails
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_realloc_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_try_realloc(NULL, 1);
+
+ gpointer gpt = g_try_malloc(1);
+ // cppcheck-suppress memleakOnRealloc
+ gpt = g_try_realloc(gpt, 2);
+ printf("%p", gpt);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_realloc_n_test()
+{
+ // cppcheck-suppress ignoredReturnValue
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_try_realloc_n(NULL, 1, 2);
+
+ gpointer gpt = g_try_malloc_n(1, 2);
+ // TODO cppcheck-suppress memleakOnRealloc
+ gpt = g_try_realloc_n(gpt, 2, 3);
printf("%p", gpt);
// cppcheck-suppress memleak
@@ -120,6 +267,41 @@ void g_new_if_test()
// cppcheck-suppress memleak
}
+void g_new0_test()
+{
+ struct a {
+ int b;
+ };
+ // valid
+ struct a * pNew1 = g_new0(struct a, 5);
+ printf("%p", pNew1);
+ g_free(pNew1);
+
+ // cppcheck-suppress leakReturnValNotUsed
+ g_new0(struct a, 1);
+
+ struct a * pNew2 = g_new0(struct a, 2);
+ printf("%p", pNew2);
+ // cppcheck-suppress memleak
+}
+
+void g_try_new_test()
+{
+ struct a {
+ int b;
+ };
+ // valid
+ struct a * pNew1 = g_try_new(struct a, 5);
+ printf("%p", pNew1);
+ g_free(pNew1);
+
+ // cppcheck-suppress leakReturnValNotUsed
+ g_try_new(struct a, 1);
+
+ struct a * pNew2 = g_try_new(struct a, 2);
+ printf("%p", pNew2);
+ // cppcheck-suppress memleak
+}
void g_try_new0_test()
{
struct a {
@@ -138,6 +320,37 @@ void g_try_new0_test()
// cppcheck-suppress memleak
}
+void g_renew_test()
+{
+ struct a {
+ int b;
+ };
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_renew(struct a, NULL, 1);
+
+ struct a * pNew = g_new(struct a, 1);
+ pNew = g_renew(struct a, pNew, 2); // No memleakOnRealloc since g_renew aborts if it fails
+ printf("%p", pNew);
+
+ // cppcheck-suppress memleak
+}
+
+void g_try_renew_test()
+{
+ struct a {
+ int b;
+ };
+ // TODO cppcheck-suppress leakReturnValNotUsed
+ g_try_renew(struct a, NULL, 1);
+
+ struct a * pNew = g_try_new(struct a, 1);
+ // TODO cppcheck-suppress memleakOnRealloc
+ pNew = g_try_renew(struct a, pNew, 2);
+ printf("%p", pNew);
+
+ // cppcheck-suppress memleak
+}
+
void g_error_new_test()
{
// valid