| // RUN: %clangxx_scudo %s -o %t |
| // RUN: %env_scudo_opts=DeallocationTypeMismatch=1 not %run %t mallocdel 2>&1 | FileCheck --check-prefix=CHECK-dealloc %s |
| // RUN: %env_scudo_opts=DeallocationTypeMismatch=0 %run %t mallocdel 2>&1 |
| // RUN: %env_scudo_opts=DeallocationTypeMismatch=1 not %run %t newfree 2>&1 | FileCheck --check-prefix=CHECK-dealloc %s |
| // RUN: %env_scudo_opts=DeallocationTypeMismatch=0 %run %t newfree 2>&1 |
| // Tests that type mismatches between allocation and deallocation functions are |
| // caught when the related option is set. |
| int main(int argc, char **argv) |
| if (!strcmp(argv[1], "mallocdel")) { |
| int *p = (int *)malloc(16); |
| if (!strcmp(argv[1], "newfree")) { |
| // CHECK-dealloc: ERROR: allocation type mismatch when deallocating address |
| // CHECK-realloc: ERROR: allocation type mismatch when reallocating address |