mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-16 18:35:53 +00:00

Similarly to https://reviews.llvm.org/D18865 this adds options to provide custom mapping for msan. As discussed in http://lists.llvm.org/pipermail/llvm-dev/2018-February/121339.html Patch by vit9696(at)avp.su. Differential Revision: https://reviews.llvm.org/D44926 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328830 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.5 KiB
LLVM
44 lines
1.5 KiB
LLVM
; Test that the msan layout customization options work as expected
|
|
;
|
|
; RUN: opt < %s -msan -msan-shadow-base 3735928559 -S | FileCheck --check-prefix=CHECK-BASE %s
|
|
; RUN: opt < %s -msan -msan-shadow-base 3735928559 -msan-and-mask 4294901760 -S | FileCheck --check-prefix=CHECK-AND %s
|
|
; RUN: opt < %s -msan -msan-shadow-base 3735928559 -msan-xor-mask 48879 -S | FileCheck --check-prefix=CHECK-XOR %s
|
|
; RUN: opt < %s -msan -msan-shadow-base 3735928559 -msan-xor-mask 48879 -msan-and-mask 4294901760 -S | FileCheck --check-prefix=CHECK-XOR-AND %s
|
|
; RUN: opt < %s -msan -msan-track-origins 1 -msan-origin-base 1777777 -S | FileCheck --check-prefix=CHECK-ORIGIN-BASE %s
|
|
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define i32 @read_value(i32* %a) sanitize_memory {
|
|
entry:
|
|
%tmp1 = load i32, i32* %a, align 4
|
|
ret i32 %tmp1
|
|
}
|
|
; CHECK-BASE-LABEL: @read_value
|
|
; CHECK-BASE-NOT: ret i32
|
|
; CHECK-BASE: add{{.*}}3735928559
|
|
; CHECK-BASE: ret i32
|
|
|
|
; CHECK-AND-LABEL: @read_value
|
|
; CHECK-AND-NOT: ret i32
|
|
; CHECK-AND: and{{.*}}-4294901761
|
|
; CHECK-AND-NEXT: add{{.*}}3735928559
|
|
; CHECK-AND: ret i32
|
|
|
|
; CHECK-XOR-LABEL: @read_value
|
|
; CHECK-XOR-NOT: ret i32
|
|
; CHECK-XOR: xor{{.*}}48879
|
|
; CHECK-XOR-NEXT: add{{.*}}3735928559
|
|
; CHECK-XOR: ret i32
|
|
|
|
; CHECK-XOR-AND-LABEL: @read_value
|
|
; CHECK-XOR-AND-NOT: ret i32
|
|
; CHECK-XOR-AND: and{{.*}}-4294901761
|
|
; CHECK-XOR-AND-NEXT: xor{{.*}}48879
|
|
; CHECK-XOR-AND-NEXT: add{{.*}}3735928559
|
|
; CHECK-XOR-AND: ret i32
|
|
|
|
; CHECK-ORIGIN-BASE-LABEL: @read_value
|
|
; CHECK-ORIGIN-BASE-NOT: ret i32
|
|
; CHECK-ORIGIN-BASE: add{{.*}}1777777
|
|
; CHECK-ORIGIN-BASE: ret i32
|