| // RUN: %clangxx_msan -DERROR %s -o %t && not %run %t 2>&1 | \ |
| // RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-NOCB |
| // RUN: %clangxx_msan -DERROR -DMSANCB_SET %s -o %t && not %run %t 2>&1 | \ |
| // RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-CB |
| // RUN: %clangxx_msan -DERROR -DMSANCB_SET -DMSANCB_CLEAR %s -o %t && not %run %t 2>&1 | \ |
| // RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-NOCB |
| // RUN: %clangxx_msan -DMSANCB_SET %s -o %t && %run %t 2>&1 | \ |
| // RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-NOCB |
| #include <sanitizer/msan_interface.h> |
| fprintf(stderr, "msan-death-callback\n"); |
| int main(int argc, char **argv) { |
| int *volatile p = (int *)malloc(sizeof(int)); |
| __msan_set_death_callback(cb); |
| __msan_set_death_callback(0); |
| // CHECK-CB: msan-death-callback |
| // CHECK-NOCB-NOT: msan-death-callback |
| fprintf(stderr, "done\n"); |