1 // RUN: %clangxx_msan -O0 %s -o %t && %run %t >%t.out 2>&1 2 // RUN: %clangxx_msan -O1 %s -o %t && %run %t >%t.out 2>&1 3 // RUN: %clangxx_msan -O2 %s -o %t && %run %t >%t.out 2>&1 4 // RUN: %clangxx_msan -O3 %s -o %t && %run %t >%t.out 2>&1 5 6 // Test that (no_sanitize_memory) functions DO NOT propagate shadow. 7 8 #include <stdlib.h> 9 #include <stdio.h> 10 11 __attribute__((noinline)) 12 __attribute__((no_sanitize_memory)) 13 int f(int x) { 14 return x; 15 } 16 17 int main(void) { 18 int x; 19 int * volatile p = &x; 20 int y = f(*p); 21 if (y) 22 exit(0); 23 return 0; 24 } 25