// RUN: %clang_scudo %s -o %t | |
// RUN: %run %t 2>&1 | |
// Tests that a regular workflow of allocation, memory fill and free works as | |
// intended. Also tests that a zero-sized allocation succeeds. | |
#include <malloc.h> | |
#include <stdlib.h> | |
#include <string.h> | |
int main(int argc, char **argv) | |
{ | |
void *p; | |
size_t size = 1U << 8; | |
p = malloc(size); | |
if (!p) | |
return 1; | |
memset(p, 'A', size); | |
free(p); | |
p = malloc(0); | |
if (!p) | |
return 1; | |
free(p); | |
return 0; | |
} |