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