Home | History | Annotate | Download | only in tests
      1 // Test for bug 100628:  need to allow custom MALLOCLIKE blocks to overlap
      2 // with normal malloc() blocks in leak-checking -- if it happens, we ignore
      3 // the malloc() block during the leak check.
      4 
      5 #include <stdlib.h>
      6 #include "valgrind.h"
      7 
      8 int main(void)
      9 {
     10    char* x;
     11 
     12    // For this one, the first custom block overlaps exactly with the start of
     13    // the malloc block.
     14    x = malloc(1000);
     15    VALGRIND_MALLOCLIKE_BLOCK(x,     /*szB*/ 16, /*rzB*/0, /*isZeroed*/0);
     16    VALGRIND_MALLOCLIKE_BLOCK(x+100, /*szB*/ 32, /*rzB*/0, /*isZeroed*/0);
     17    VALGRIND_MALLOCLIKE_BLOCK(x+200, /*szB*/ 64, /*rzB*/0, /*isZeroed*/0);
     18    VALGRIND_MALLOCLIKE_BLOCK(x+300, /*szB*/128, /*rzB*/0, /*isZeroed*/0);
     19 
     20    // For this one, the first custom block does not overlap exactly with the
     21    // start of the malloc block.
     22    x = malloc(1000);
     23    VALGRIND_MALLOCLIKE_BLOCK(x+100, /*szB*/ 32, /*rzB*/0, /*isZeroed*/0);
     24    VALGRIND_MALLOCLIKE_BLOCK(x+200, /*szB*/ 64, /*rzB*/0, /*isZeroed*/0);
     25    VALGRIND_MALLOCLIKE_BLOCK(x+300, /*szB*/128, /*rzB*/0, /*isZeroed*/0);
     26 
     27    return 0;
     28 }
     29