1 // RUN: %clangxx_msan -m64 -O0 %s -o %t && %run %t 2 // RUN: %clangxx_msan -DPOSITIVE -m64 -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s 3 4 #include <emmintrin.h> 5 6 int to_int(double v) { 7 __m128d t = _mm_set_sd(v); 8 int x = _mm_cvtsd_si32(t); 9 return x; 10 // CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value 11 // CHECK: #{{.*}} in to_int{{.*}}vector_cvt.cc:[[@LINE-3]] 12 } 13 14 int main() { 15 #ifdef POSITIVE 16 double v; 17 #else 18 double v = 1.1; 19 #endif 20 double* volatile p = &v; 21 int x = to_int(*p); 22 return !x; 23 } 24