Home | History | Annotate | Download | only in asan_tests
      1 ; Test that calls to malloc() and free() are replaced
      2 
      3 ; REQUIRES: allow_dump
      4 
      5 ; RUN: %p2i -i %s --args -verbose=inst -threads=0 -fsanitize-address \
      6 ; RUN:     --allow-externally-defined-symbols | FileCheck --check-prefix=DUMP %s
      7 
      8 declare external i32 @malloc(i32)
      9 declare external i32 @calloc(i32, i32)
     10 declare external i32 @realloc(i32, i32)
     11 declare external void @free(i32)
     12 
     13 define internal void @func() {
     14   %ptr1 = call i32 @malloc(i32 42)
     15   %ptr2 = call i32 @calloc(i32 12, i32 42)
     16   %ptr3 = call i32 @realloc(i32 0, i32 100)
     17   call void @free(i32 %ptr1)
     18   ret void
     19 }
     20 
     21 ; DUMP-LABEL: ================ Instrumented CFG ================
     22 ; DUMP-NEXT: define internal void @func() {
     23 ; DUMP-NEXT: __0:
     24 ; DUMP-NEXT: %ptr1 = call i32 @__asan_malloc(i32 42)
     25 ; DUMP-NEXT: %ptr2 = call i32 @__asan_calloc(i32 12, i32 42)
     26 ; DUMP-NEXT: %ptr3 = call i32 @__asan_realloc(i32 0, i32 100)
     27 ; DUMP-NEXT: call void @__asan_free(i32 %ptr1)
     28 ; DUMP-NEXT: ret void
     29 ; DUMP-NEXT: }
     30