Home | History | Annotate | Download | only in msan
      1 // RUN: %clangxx_msan -fsanitize-memory-track-origins=2 -g %s -o %t
      2 // RUN: %run %t 2>&1 | \
      3 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-NOSTATS %s
      4 // RUN: MSAN_OPTIONS=print_stats=1 %run %t 2>&1 | \
      5 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-NOSTATS %s
      6 // RUN: MSAN_OPTIONS=print_stats=1,atexit=1 %run %t 2>&1 | \
      7 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-STATS %s
      8 
      9 // RUN: %clangxx_msan -fsanitize-memory-track-origins=2 -g -DPOSITIVE=1 %s -o %t
     10 // RUN: not %run %t 2>&1 | \
     11 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-NOSTATS %s
     12 // RUN: MSAN_OPTIONS=print_stats=1 not %run %t 2>&1 | \
     13 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-STATS %s
     14 
     15 // RUN: %clangxx_msan -fsanitize-memory-track-origins=2 -g -DPOSITIVE=1 -mllvm -msan-keep-going=1 %s -o %t
     16 // RUN: not %run %t 2>&1 | \
     17 // RUN:  FileCheck --check-prefix=CHECK --check-prefix=CHECK-NOSTATS --check-prefix=CHECK-KEEPGOING %s
     18 // RUN: MSAN_OPTIONS=print_stats=1 not %run %t 2>&1 | \
     19 // RUN:   FileCheck --check-prefix=CHECK --check-prefix=CHECK-STATS --check-prefix=CHECK-KEEPGOING %s
     20 
     21 #include <stdio.h>
     22 int main(int argc, char **argv) {
     23   int x;
     24   int *volatile p = &x;
     25   fprintf(stderr, "TEST\n");
     26 #ifdef POSITIVE
     27   return *p;
     28 #else
     29   return 0;
     30 #endif
     31 }
     32 
     33 // CHECK: TEST
     34 
     35 // CHECK-STATS: Unique heap origins:
     36 // CHECK-STATS: Stack depot allocated bytes:
     37 // CHECK-STATS: Unique origin histories:
     38 // CHECK-STATS: History depot allocated bytes:
     39 
     40 // CHECK-NOSTATS-NOT: Unique heap origins:
     41 // CHECK-NOSTATS-NOT: Stack depot allocated bytes:
     42 // CHECK-NOSTATS-NOT: Unique origin histories:
     43 // CHECK-NOSTATS-NOT: History depot allocated bytes:
     44 
     45 // CHECK-KEEPGOING: MemorySanitizer: 1 warnings reported.
     46