diff options
Diffstat (limited to 'test/Analysis/gmalloc.c')
-rw-r--r-- | test/Analysis/gmalloc.c | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/test/Analysis/gmalloc.c b/test/Analysis/gmalloc.c deleted file mode 100644 index 50413e2e9b13..000000000000 --- a/test/Analysis/gmalloc.c +++ /dev/null @@ -1,169 +0,0 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc -analyzer-store=region -verify %s - -#include "Inputs/system-header-simulator.h" - -typedef void* gpointer; -typedef const void* gconstpointer; -typedef unsigned long gsize; -typedef unsigned int guint; - -gpointer g_malloc(gsize n_bytes); -gpointer g_malloc0(gsize n_bytes); -gpointer g_realloc(gpointer mem, gsize n_bytes); -gpointer g_try_malloc(gsize n_bytes); -gpointer g_try_malloc0(gsize n_bytes); -gpointer g_try_realloc(gpointer mem, gsize n_bytes); -gpointer g_malloc_n(gsize n_blocks, gsize n_block_bytes); -gpointer g_malloc0_n(gsize n_blocks, gsize n_block_bytes); -gpointer g_realloc_n(gpointer mem, gsize n_blocks, gsize n_block_bytes); -gpointer g_try_malloc_n(gsize n_blocks, gsize n_block_bytes); -gpointer g_try_malloc0_n(gsize n_blocks, gsize n_block_bytes); -gpointer g_try_realloc_n(gpointer mem, gsize n_blocks, gsize n_block_bytes); -void g_free(gpointer mem); -gpointer g_memdup(gconstpointer mem, guint byte_size); - -static const gsize n_bytes = 1024; - -void f1() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); - - g_free(g1); - g_free(g2); - g_free(g2); // expected-warning{{Attempt to free released memory}} -} - -void f2() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); - - g_free(g1); - g_free(g2); - g_free(g3); - g3 = g_memdup(g3, n_bytes); // expected-warning{{Use of memory after it is freed}} -} - -void f3() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); // expected-warning{{Potential leak of memory pointed to by 'g4'}} - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g6'}} - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g5'}} - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g8'}} - - g_free(g1); // expected-warning{{Potential leak of memory pointed to by 'g7'}} - g_free(g2); - g_free(g3); -} - -void f4() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g6'}} - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g5'}} - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g8'}} - - g_free(g1); // expected-warning{{Potential leak of memory pointed to by 'g7'}} - g_free(g2); - g_free(g3); - g_free(g4); -} - -void f5() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g6'}} - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g8'}} - - g_free(g1); // expected-warning{{Potential leak of memory pointed to by 'g7'}} - g_free(g2); - g_free(g3); - g_free(g4); - g_free(g5); -} - -void f6() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g8'}} - - g_free(g1); // expected-warning{{Potential leak of memory pointed to by 'g7'}} - g_free(g2); - g_free(g3); - g_free(g4); - g_free(g5); - g_free(g6); -} - -void f7() { - gpointer g1 = g_malloc(n_bytes); - gpointer g2 = g_malloc0(n_bytes); - g1 = g_realloc(g1, n_bytes * 2); - gpointer g3 = g_try_malloc(n_bytes); - gpointer g4 = g_try_malloc0(n_bytes); - g3 = g_try_realloc(g3, n_bytes * 2); - gpointer g5 = g_malloc_n(n_bytes, sizeof(char)); - gpointer g6 = g_malloc0_n(n_bytes, sizeof(char)); - g5 = g_realloc_n(g5, n_bytes * 2, sizeof(char)); - gpointer g7 = g_try_malloc_n(n_bytes, sizeof(char)); - gpointer g8 = g_try_malloc0_n(n_bytes, sizeof(char)); - g7 = g_try_realloc_n(g7, n_bytes * 2, sizeof(char)); // expected-warning{{Potential leak of memory pointed to by 'g8'}} - - g_free(g1); - g_free(g2); - g_free(g3); - g_free(g4); - g_free(g5); - g_free(g6); - g_free(g7); -} |