Home | History | Annotate | Download | only in TestCases
      1 // Test recovery mode.
      2 //
      3 // RUN: %clang_asan -fsanitize-recover=address %s -o %t
      4 //
      5 // RUN: env not %run %t 2>&1 | FileCheck %s
      6 // RUN: %env_asan_opts=halt_on_error=true not %run %t 2>&1 | FileCheck %s
      7 // RUN: %env_asan_opts=halt_on_error=false %run %t 2>&1 | FileCheck %s --check-prefix CHECK-RECOVER
      8 
      9 #include <string.h>
     10 
     11 volatile int ten = 10;
     12 
     13 int main() {
     14   char x[10];
     15   // CHECK: WRITE of size 11
     16   // CHECK-RECOVER: WRITE of size 11
     17   memset(x, 0, 11);
     18   // CHECK-NOT: READ of size 1
     19   // CHECK-RECOVER: READ of size 1
     20   volatile int res = x[ten];
     21   // CHECK-NOT: WRITE of size 1
     22   // CHECK-RECOVER: WRITE of size 1
     23   x[ten] = res + 3;
     24   // CHECK-NOT: READ of size 1
     25   // CHECK-RECOVER: READ of size 1
     26   res = x[ten];
     27   return  0;
     28 }
     29 
     30