1*d21b3d34SFangrui Song // RUN: %clangxx_msan -O0 %s -o %t && not %run %t >%t.out 2>&1 2*d21b3d34SFangrui Song // RUN: FileCheck %s < %t.out 3*d21b3d34SFangrui Song // RUN: %clangxx_msan -O1 %s -o %t && not %run %t >%t.out 2>&1 4*d21b3d34SFangrui Song // RUN: FileCheck %s < %t.out 5*d21b3d34SFangrui Song // RUN: %clangxx_msan -O2 %s -o %t && not %run %t >%t.out 2>&1 6*d21b3d34SFangrui Song // RUN: FileCheck %s < %t.out 7*d21b3d34SFangrui Song // RUN: %clangxx_msan -O3 %s -o %t && not %run %t >%t.out 2>&1 8*d21b3d34SFangrui Song // RUN: FileCheck %s < %t.out 9*d21b3d34SFangrui Song 10*d21b3d34SFangrui Song #include <stdlib.h> main(int argc,char ** argv)11*d21b3d34SFangrui Songint main(int argc, char **argv) { 12*d21b3d34SFangrui Song int x; 13*d21b3d34SFangrui Song int *volatile p = &x; 14*d21b3d34SFangrui Song int z = *p ? 1 : 0; 15*d21b3d34SFangrui Song if (z) 16*d21b3d34SFangrui Song exit(0); 17*d21b3d34SFangrui Song // CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value 18*d21b3d34SFangrui Song // CHECK: {{#0 0x.* in main .*select.cpp:}}[[@LINE-3]] 19*d21b3d34SFangrui Song 20*d21b3d34SFangrui Song // CHECK: SUMMARY: MemorySanitizer: use-of-uninitialized-value {{.*select.cpp:.* main}} 21*d21b3d34SFangrui Song return 0; 22*d21b3d34SFangrui Song } 23