1*d21b3d34SFangrui Song // RUN: %clangxx_msan -fsanitize-memory-track-origins -O0 %s -o %t
2*d21b3d34SFangrui Song // RUN: %run %t
3*d21b3d34SFangrui Song // RUN: %clangxx_msan -fsanitize-memory-track-origins -O3 %s -o %t
4*d21b3d34SFangrui Song // RUN: %run %t
5*d21b3d34SFangrui Song 
6*d21b3d34SFangrui Song #include <assert.h>
7*d21b3d34SFangrui Song #include <string.h>
8*d21b3d34SFangrui Song #include <sanitizer/msan_interface.h>
9*d21b3d34SFangrui Song 
main(int argc,char ** argv)10*d21b3d34SFangrui Song int main(int argc, char **argv) {
11*d21b3d34SFangrui Song   char s[20] = "string";
12*d21b3d34SFangrui Song   __msan_poison(s, sizeof(s));
13*d21b3d34SFangrui Song   __msan_unpoison_string(s);
14*d21b3d34SFangrui Song   assert(__msan_test_shadow(s, sizeof(s)) == strlen("string") + 1);
15*d21b3d34SFangrui Song   return 0;
16*d21b3d34SFangrui Song }
17