1cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe#include <stdlib.h>
2b3a23c6054e6918688a2beaba1a6a5e0954714e7philippe//#include <malloc.h>
3cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe#include "../memcheck.h"
4cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippeint main (int argc, char*argv[])
5cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe{
6cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   size_t def_size = 1<<20;
7cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   char *p;
8cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   char *new_p;
9cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
10cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   if (argc > 10000) def_size = def_size * 2;
11cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
12cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   {
13cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t size = def_size;
1406bc722457ffe12e056d2f40d0d2f5c8711b541fflorian      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
15cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      p = malloc(size);
16cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   }
17cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
1806bc722457ffe12e056d2f40d0d2f5c8711b541fflorian   (void) VALGRIND_MAKE_MEM_UNDEFINED(&p, 1);
19cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   new_p = realloc(p, def_size);
20cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
2106bc722457ffe12e056d2f40d0d2f5c8711b541fflorian   (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
22cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   new_p = realloc(new_p, def_size);
23cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
2406bc722457ffe12e056d2f40d0d2f5c8711b541fflorian   (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
25cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   free (new_p);
26cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
27cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   {
28cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t nmemb = 1;
2906bc722457ffe12e056d2f40d0d2f5c8711b541fflorian      (void) VALGRIND_MAKE_MEM_UNDEFINED(&nmemb, 1);
30cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      new_p = calloc(nmemb, def_size);
31cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      free (new_p);
32cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   }
33b3a23c6054e6918688a2beaba1a6a5e0954714e7philippe#if 0
34cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   {
35cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t alignment = 1;
3606bc722457ffe12e056d2f40d0d2f5c8711b541fflorian      (void) VALGRIND_MAKE_MEM_UNDEFINED(&alignment, 1);
37cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      new_p = memalign(alignment, def_size);
38cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      free(new_p);
39cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   }
40cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
41cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   {
42cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t nmemb = 16;
43cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t size = def_size;
4406bc722457ffe12e056d2f40d0d2f5c8711b541fflorian      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
45cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      new_p = memalign(nmemb, size);
46cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      free(new_p);
47cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   }
48cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe
49cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   {
50cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      size_t size = def_size;
5106bc722457ffe12e056d2f40d0d2f5c8711b541fflorian      (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
52cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      new_p = valloc(size);
53cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe      free (new_p);
54cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   }
55b3a23c6054e6918688a2beaba1a6a5e0954714e7philippe#endif
56cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe   return 0;
57cf9e1973453f3bcc4cea9e5e943f10101bc3740bphilippe}
58