// Test for bug 100628: need to allow custom MALLOCLIKE blocks to overlap // with normal malloc() blocks in leak-checking -- if it happens, we ignore // the malloc() block during the leak check. #include <stdlib.h> #include "valgrind.h" int main(void) { char* x; // For this one, the first custom block overlaps exactly with the start of // the malloc block. x = malloc(1000); VALGRIND_MALLOCLIKE_BLOCK(x, /*szB*/ 16, /*rzB*/0, /*isZeroed*/0); VALGRIND_MALLOCLIKE_BLOCK(x+100, /*szB*/ 32, /*rzB*/0, /*isZeroed*/0); VALGRIND_MALLOCLIKE_BLOCK(x+200, /*szB*/ 64, /*rzB*/0, /*isZeroed*/0); VALGRIND_MALLOCLIKE_BLOCK(x+300, /*szB*/128, /*rzB*/0, /*isZeroed*/0); // For this one, the first custom block does not overlap exactly with the // start of the malloc block. x = malloc(1000); VALGRIND_MALLOCLIKE_BLOCK(x+100, /*szB*/ 32, /*rzB*/0, /*isZeroed*/0); VALGRIND_MALLOCLIKE_BLOCK(x+200, /*szB*/ 64, /*rzB*/0, /*isZeroed*/0); VALGRIND_MALLOCLIKE_BLOCK(x+300, /*szB*/128, /*rzB*/0, /*isZeroed*/0); return 0; }