2015-07-30 07:53:08 +08:00
|
|
|
// RUN: %clangxx_msan -O0 -g %s -o %t
|
|
|
|
// RUN: not %run %t 2>&1 | FileCheck %s
|
|
|
|
// RUN: MSAN_OPTIONS=intercept_memcmp=0 %run %t
|
|
|
|
|
|
|
|
#include <string.h>
|
2016-02-24 21:48:14 +08:00
|
|
|
#include <stdio.h>
|
2015-07-30 07:53:08 +08:00
|
|
|
int main(int argc, char **argv) {
|
|
|
|
char a1[4];
|
|
|
|
char a2[4];
|
|
|
|
for (int i = 0; i < argc * 3; i++)
|
|
|
|
a2[i] = a1[i] = i;
|
|
|
|
int res = memcmp(a1, a2, 4);
|
2016-02-24 21:48:14 +08:00
|
|
|
if (!res)
|
|
|
|
printf("equals");
|
|
|
|
return 0;
|
2015-07-30 07:53:08 +08:00
|
|
|
// CHECK: Uninitialized bytes in __interceptor_memcmp at offset 3
|
|
|
|
// CHECK: MemorySanitizer: use-of-uninitialized-value
|
|
|
|
}
|