Home | History | Annotate | Download | only in msan
      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