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