1673dc3d4SNico Weber // Make sure coverage is dumped even if there are reported leaks.
2673dc3d4SNico Weber //
3673dc3d4SNico Weber // RUN: %clangxx_asan -fsanitize-coverage=func,trace-pc-guard %s -o %t
4673dc3d4SNico Weber //
5673dc3d4SNico Weber // RUN: rm -rf %t-dir
6673dc3d4SNico Weber //
7673dc3d4SNico Weber // RUN: mkdir -p %t-dir
8673dc3d4SNico Weber // RUN: %env_asan_opts=coverage=1:coverage_dir=%t-dir:verbosity=1 not %run %t 2>&1 | FileCheck %s
9673dc3d4SNico Weber // RUN: %sancov print %t-dir/*.sancov 2>&1
10673dc3d4SNico Weber //
11673dc3d4SNico Weber // REQUIRES: leak-detection
123b3aef19SVy Nguyen // FIXME: sancov paths not work with adb
133b3aef19SVy Nguyen // UNSUPPORTED: android
14*89fb2c71SVitaly Buka int *g;
main(int argc,char ** argv)15673dc3d4SNico Weber int main(int argc, char **argv) {
16*89fb2c71SVitaly Buka   for (int i = 0; i < 10; ++i)
17*89fb2c71SVitaly Buka     g = new int[i];
18673dc3d4SNico Weber   return 0;
19673dc3d4SNico Weber }
20673dc3d4SNico Weber 
21673dc3d4SNico Weber // CHECK: LeakSanitizer: detected memory leaks
22673dc3d4SNico Weber // CHECK: SanitizerCoverage: {{.*}}PCs written
23