1*673dc3d4SNico Weber // RUN: %clangxx_asan -O0 %s -o %t
2*673dc3d4SNico Weber // RUN: not %run %t      2>&1 | FileCheck %s
3*673dc3d4SNico Weber // RUN: not %run %t heap 2>&1 | FileCheck %s
4*673dc3d4SNico Weber // RUN: %env_asan_opts=poison_partial=0 %run %t
5*673dc3d4SNico Weber // RUN: %env_asan_opts=poison_partial=0 %run %t heap
6*673dc3d4SNico Weber #include <string.h>
7*673dc3d4SNico Weber char g[21];
8*673dc3d4SNico Weber char *x;
9*673dc3d4SNico Weber 
main(int argc,char ** argv)10*673dc3d4SNico Weber int main(int argc, char **argv) {
11*673dc3d4SNico Weber   if (argc >= 2)
12*673dc3d4SNico Weber     x = new char[21];
13*673dc3d4SNico Weber   else
14*673dc3d4SNico Weber     x = &g[0];
15*673dc3d4SNico Weber   memset(x, 0, 21);
16*673dc3d4SNico Weber   int *y = (int*)x;
17*673dc3d4SNico Weber   return y[5];
18*673dc3d4SNico Weber }
19*673dc3d4SNico Weber // CHECK: 0 bytes to the right
20