/* Test recovery mode.  */
/* { dg-do run } */
/* { dg-options "-fsanitize-recover=address" } */
/* { dg-set-target-env-var ASAN_OPTIONS "halt_on_error=true" } */
/* { dg-shouldfail "asan" } */

#include <string.h>

volatile int ten = 10;

int main() {
  char x[10];
  __builtin_memset(x, 0, ten + 1);
  asm volatile ("" : : : "memory");
  volatile int res = x[ten];
  x[ten] = res + 3;
  res = x[ten];
  return 0;
}

/* { dg-output "WRITE of size 11 at 0x\[0-9a-f\]+ thread T0\[^\n\r]*(\n|\r\n|\r).*" } */
/* { dg-prune-output "\[^\n\r]*READ of size 1 at 0x\[0-9a-f\]+ thread T0\[^\n\r]*(\n|\r\n|\r).*" } */
/* { dg-prune-output "\[^\n\r]*WRITE of size 1 at 0x\[0-9a-f\]+ thread T0\[^\n\r]*(\n|\r\n|\r).*" } */
/* { dg-prune-output "\[^\n\r]*READ of size 1 at 0x\[0-9a-f\]+ thread T0\[^\n\r]*(\n|\r\n|\r).*" } */
