1*7c3d14c8STreehugger Robot // Test various levels of coverage 2*7c3d14c8STreehugger Robot // 3*7c3d14c8STreehugger Robot // RUN: %clangxx_msan -DINIT_VAR=1 -O1 -fsanitize-coverage=func %s -o %t 4*7c3d14c8STreehugger Robot // RUN: mkdir -p %T/coverage-levels 5*7c3d14c8STreehugger Robot // RUN: MSAN_OPTIONS=coverage=1:verbosity=1:coverage_dir=%T/coverage-levels %run %t 2>&1 | FileCheck %s --check-prefix=CHECK1 --check-prefix=CHECK_NOWARN 6*7c3d14c8STreehugger Robot // RUN: %clangxx_msan -O1 -fsanitize-coverage=func %s -o %t 7*7c3d14c8STreehugger Robot // RUN: MSAN_OPTIONS=coverage=1:verbosity=1:coverage_dir=%T/coverage-levels not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK1 --check-prefix=CHECK_WARN 8*7c3d14c8STreehugger Robot // RUN: %clangxx_msan -O1 -fsanitize-coverage=bb %s -o %t 9*7c3d14c8STreehugger Robot // RUN: MSAN_OPTIONS=coverage=1:verbosity=1:coverage_dir=%T/coverage-levels not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK2 --check-prefix=CHECK_WARN 10*7c3d14c8STreehugger Robot // RUN: %clangxx_msan -O1 -fsanitize-coverage=edge %s -o %t 11*7c3d14c8STreehugger Robot // RUN: MSAN_OPTIONS=coverage=1:verbosity=1:coverage_dir=%T/coverage-levels not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK3 --check-prefix=CHECK_WARN 12*7c3d14c8STreehugger Robot // 13*7c3d14c8STreehugger Robot volatile int sink; main(int argc,char ** argv)14*7c3d14c8STreehugger Robotint main(int argc, char **argv) { 15*7c3d14c8STreehugger Robot int var; 16*7c3d14c8STreehugger Robot #if INIT_VAR 17*7c3d14c8STreehugger Robot var = 0; 18*7c3d14c8STreehugger Robot #endif 19*7c3d14c8STreehugger Robot if (argc == 0) 20*7c3d14c8STreehugger Robot sink = 0; 21*7c3d14c8STreehugger Robot return *(volatile int*)&var; 22*7c3d14c8STreehugger Robot } 23*7c3d14c8STreehugger Robot 24*7c3d14c8STreehugger Robot // CHECK_WARN: WARNING: MemorySanitizer: use-of-uninitialized-value 25*7c3d14c8STreehugger Robot // CHECK_NOWARN-NOT: ERROR 26*7c3d14c8STreehugger Robot // CHECK1: 1 PCs written 27*7c3d14c8STreehugger Robot // CHECK2: 1 PCs written 28*7c3d14c8STreehugger Robot // CHECK3: 2 PCs written 29