1*673dc3d4SNico Weber // RUN: rm -rf %t-dir && mkdir -p %t-dir
2*673dc3d4SNico Weber // RUN: %clangxx_asan %s -o %t-dir/verbose-log-path_test-binary
3*673dc3d4SNico Weber 
4*673dc3d4SNico Weber // The glob below requires bash.
5*673dc3d4SNico Weber // REQUIRES: shell
6*673dc3d4SNico Weber 
7*673dc3d4SNico Weber // Good log_path.
8*673dc3d4SNico Weber // RUN: rm -f %t-dir/asan.log.*
9*673dc3d4SNico Weber // RUN: %env_asan_opts=log_path=%t-dir/asan.log:log_exe_name=1 not %run %t-dir/verbose-log-path_test-binary 2> %t.out
10*673dc3d4SNico Weber // RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t-dir/asan.log.verbose-log-path_test-binary.*
11*673dc3d4SNico Weber 
12*673dc3d4SNico Weber // FIXME: only FreeBSD, NetBSD and Linux have verbose log paths now.
13*673dc3d4SNico Weber // XFAIL: windows-msvc,android
14*673dc3d4SNico Weber // UNSUPPORTED: ios
15*673dc3d4SNico Weber 
16*673dc3d4SNico Weber #include <stdlib.h>
17*673dc3d4SNico Weber #include <string.h>
main(int argc,char ** argv)18*673dc3d4SNico Weber int main(int argc, char **argv) {
19*673dc3d4SNico Weber   if (argc > 2) return 0;
20*673dc3d4SNico Weber   char *x = (char*)malloc(10);
21*673dc3d4SNico Weber   memset(x, 0, 10);
22*673dc3d4SNico Weber   int res = x[argc * 10];  // BOOOM
23*673dc3d4SNico Weber   free(x);
24*673dc3d4SNico Weber   return res;
25*673dc3d4SNico Weber }
26*673dc3d4SNico Weber // CHECK-ERROR: ERROR: AddressSanitizer
27