[dfsan] Correctly handle loads and stores of zero size.
[oota-llvm.git] / test / Instrumentation / DataFlowSanitizer / load.ll
index 6cd5151b1260b814ff3de2b5c936b307aec29dc1..832422437a8ec924f416024b657e1a90911394a8 100644 (file)
@@ -2,6 +2,18 @@
 ; RUN: opt < %s -dfsan -dfsan-combine-pointer-labels-on-load=0 -S | FileCheck %s --check-prefix=NO_COMBINE_PTR_LABEL
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
 
+define {} @load0({}* %p) {
+  ; COMBINE_PTR_LABEL: @"dfs$load0"
+  ; COMBINE_PTR_LABEL: load
+  ; COMBINE_PTR_LABEL-NOT: load
+
+  ; NO_COMBINE_PTR_LABEL: @"dfs$load0"
+  ; NO_COMBINE_PTR_LABEL: load
+  ; NO_COMBINE_PTR_LABEL-NOT: load
+  %a = load {}* %p
+  ret {} %a
+}
+
 define i8 @load8(i8* %p) {
   ; COMBINE_PTR_LABEL: @"dfs$load8"
   ; COMBINE_PTR_LABEL: load i16*
@@ -152,4 +164,4 @@ define i64 @load64(i64* %p) {
 
   %a = load i64* %p
   ret i64 %a
-}
\ No newline at end of file
+}