1// RUN: %clangxx_msan %s -fno-sanitize-memory-param-retval -o %t && %run %t >%t.out 2>&1
2// RUN: FileCheck %s --check-prefix=MISSED --allow-empty < %t.out
3// RUN: %clangxx_msan %s -mllvm -msan-eager-checks=1 -fno-sanitize-memory-param-retval -o %t && not %run %t >%t.out 2>&1
4// RUN: FileCheck %s < %t.out
5
6struct SimpleStruct {
7 int md1;
8};
9
10static int sink;
11
12static void examineValue(int x) { sink = x; }
13
14int main(int argc, char *argv[]) {
15 auto ss = new SimpleStruct;
16 examineValue(x: ss->md1);
17
18 return 0;
19}
20
21// CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value
22// MISSED-NOT: use-of-uninitialized-value
23

source code of compiler-rt/test/msan/noundef_analysis.cpp