1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <stdlib.h>
2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov//#include <malloc.h>
3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "../memcheck.h"
4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovint main (int argc, char*argv[])
5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{
6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   size_t def_size = 1<<20;
7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   char *p;
8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   char *new_p;
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   if (argc > 10000) def_size = def_size * 2;
11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   {
13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t size = def_size;
14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      p = malloc(size);
16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   }
17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   (void) VALGRIND_MAKE_MEM_UNDEFINED(&p, 1);
19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   new_p = realloc(p, def_size);
20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   new_p = realloc(new_p, def_size);
23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   free (new_p);
26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   {
28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t nmemb = 1;
29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (void) VALGRIND_MAKE_MEM_UNDEFINED(&nmemb, 1);
30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      new_p = calloc(nmemb, def_size);
31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      free (new_p);
32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   }
33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if 0
34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   {
35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t alignment = 1;
36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (void) VALGRIND_MAKE_MEM_UNDEFINED(&alignment, 1);
37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      new_p = memalign(alignment, def_size);
38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      free(new_p);
39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   }
40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   {
42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t nmemb = 16;
43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t size = def_size;
44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      new_p = memalign(nmemb, size);
46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      free(new_p);
47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   }
48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   {
50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      size_t size = def_size;
51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      new_p = valloc(size);
53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov      free (new_p);
54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   }
55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif
56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   return 0;
57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}
58