1*d21b3d34SFangrui Song // RUN: %clangxx_msan -O3 %s -o %t && %run %t 2*d21b3d34SFangrui Song 3*d21b3d34SFangrui Song // Test that no_sanitize_memory attribute applies even when the function would 4*d21b3d34SFangrui Song // be normally inlined. 5*d21b3d34SFangrui Song 6*d21b3d34SFangrui Song #include <stdlib.h> 7*d21b3d34SFangrui Song 8*d21b3d34SFangrui Song __attribute__((no_sanitize_memory)) f(int * p)9*d21b3d34SFangrui Songint f(int *p) { 10*d21b3d34SFangrui Song if (*p) // BOOOM?? Nope! 11*d21b3d34SFangrui Song exit(0); 12*d21b3d34SFangrui Song return 0; 13*d21b3d34SFangrui Song } 14*d21b3d34SFangrui Song main(int argc,char ** argv)15*d21b3d34SFangrui Songint main(int argc, char **argv) { 16*d21b3d34SFangrui Song int x; 17*d21b3d34SFangrui Song int * volatile p = &x; 18*d21b3d34SFangrui Song int res = f(p); 19*d21b3d34SFangrui Song return 0; 20*d21b3d34SFangrui Song } 21