Home | History | Annotate | Download | only in lit_tests
      1 // RUN: %clangxx_asan -O2 %s -o %t
      2 // RUN: %t 2>&1 | FileCheck %s
      3 #include <stdlib.h>
      4 #include <unistd.h>
      5 
      6 extern "C" {
      7 // Note: avoid calling functions that allocate memory in malloc/free
      8 // to avoid infinite recursion.
      9 void __asan_malloc_hook(void *ptr, size_t sz) {
     10   write(1, "MallocHook\n", sizeof("MallocHook\n"));
     11 }
     12 void __asan_free_hook(void *ptr) {
     13   write(1, "FreeHook\n", sizeof("FreeHook\n"));
     14 }
     15 }  // extern "C"
     16 
     17 int main() {
     18   volatile int *x = new int;
     19   // CHECK: MallocHook
     20   *x = 0;
     21   delete x;
     22   // CHECK: FreeHook
     23   return 0;
     24 }
     25