summaryrefslogtreecommitdiffstats
path: root/test/Instrumentation
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-09-03 13:05:29 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2013-09-03 13:05:29 +0000
commit69086b2962b16a9e78aea0605202c5ea126049ae (patch)
tree87dfaa7100223b1367a300b44928ea63f24e9e4c /test/Instrumentation
parent6a9b29ec9b42e792732659e510a655449a41b661 (diff)
downloadexternal_llvm-69086b2962b16a9e78aea0605202c5ea126049ae.zip
external_llvm-69086b2962b16a9e78aea0605202c5ea126049ae.tar.gz
external_llvm-69086b2962b16a9e78aea0605202c5ea126049ae.tar.bz2
[msan] Fix handling of select with struct arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189796 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Instrumentation')
-rw-r--r--test/Instrumentation/MemorySanitizer/msan_basic.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/Instrumentation/MemorySanitizer/msan_basic.ll b/test/Instrumentation/MemorySanitizer/msan_basic.ll
index 466e252..e87bf53 100644
--- a/test/Instrumentation/MemorySanitizer/msan_basic.ll
+++ b/test/Instrumentation/MemorySanitizer/msan_basic.ll
@@ -290,6 +290,19 @@ entry:
; CHECK-ORIGINS: ret <8 x i16>
+define { i64, i64 } @SelectStruct(i1 zeroext %x, { i64, i64 } %a, { i64, i64 } %b) readnone sanitize_memory {
+entry:
+ %c = select i1 %x, { i64, i64 } %a, { i64, i64 } %b
+ ret { i64, i64 } %c
+}
+
+; CHECK: @SelectStruct
+; CHECK: select i1 {{.*}}, { i64, i64 }
+; CHECK-NEXT: select i1 {{.*}}, { i64, i64 } { i64 -1, i64 -1 }, { i64, i64 }
+; CHECK-NEXT: select i1 {{.*}}, { i64, i64 }
+; CHECK: ret { i64, i64 }
+
+
define i8* @IntToPtr(i64 %x) nounwind uwtable readnone sanitize_memory {
entry:
%0 = inttoptr i64 %x to i8*