Mercurial > hg > CbC > CbC_llvm
diff compiler-rt/test/scudo/double-free.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler-rt/test/scudo/double-free.cpp Thu Feb 13 15:10:13 2020 +0900 @@ -0,0 +1,37 @@ +// RUN: %clangxx_scudo %s -o %t +// RUN: not %run %t malloc 2>&1 | FileCheck %s +// RUN: not %run %t new 2>&1 | FileCheck %s +// RUN: not %run %t newarray 2>&1 | FileCheck %s + +// Tests double-free error on pointers allocated with different allocation +// functions. + +#include <assert.h> +#include <stdlib.h> +#include <string.h> + +int main(int argc, char **argv) +{ + assert(argc == 2); + if (!strcmp(argv[1], "malloc")) { + void *p = malloc(sizeof(int)); + assert(p); + free(p); + free(p); + } + if (!strcmp(argv[1], "new")) { + int *p = new int; + assert(p); + delete p; + delete p; + } + if (!strcmp(argv[1], "newarray")) { + int *p = new int[8]; + assert(p); + delete[] p; + delete[] p; + } + return 0; +} + +// CHECK: ERROR: invalid chunk state