[compiler-rt] r195350 - [msan] Test for r195349.

Evgeniy Stepanov eugeni.stepanov at gmail.com
Thu Nov 21 04:01:07 PST 2013


Author: eugenis
Date: Thu Nov 21 06:01:07 2013
New Revision: 195350

URL: http://llvm.org/viewvc/llvm-project?rev=195350&view=rev
Log:
[msan] Test for r195349.

Added:
    compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc   (with props)

Added: compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc?rev=195350&view=auto
==============================================================================
--- compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc (added)
+++ compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc Thu Nov 21 06:01:07 2013
@@ -0,0 +1,22 @@
+// RUN: %clangxx_msan -fsanitize-memory-track-origins -O0 %s -o %t && not %t 2>&1 | FileCheck %s
+// RUN: %clangxx_msan -fsanitize-memory-track-origins -O1 %s -o %t && not %t 2>&1 | FileCheck %s
+// RUN: %clangxx_msan -fsanitize-memory-track-origins -O2 %s -o %t && not %t 2>&1 | FileCheck %s
+
+// Test condition origin propagation through "select" IR instruction.
+
+#include <stdio.h>
+#include <stdint.h>
+
+__attribute__((noinline))
+int *max_by_ptr(int *a, int *b) {
+  return *a < *b ? b : a;
+}
+
+int main(void) {
+  int x;
+  int *volatile px = &x;
+  int y = 43;
+  int *p = max_by_ptr(px, &y);
+  // CHECK: Uninitialized value was created by an allocation of 'x' in the stack frame of function 'main'
+  return *p;
+}

Propchange: compiler-rt/trunk/lib/msan/lit_tests/select_origin.cc
------------------------------------------------------------------------------
    svn:eol-style = LF





More information about the llvm-commits mailing list