brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · f00b5cc Raw
40 lines · plain
1; Test that the scale (-asan-mapping-scale) and offset (-asan-mapping-offset) command-line options work as expected2;3; RUN: opt < %s -passes=asan -asan-mapping-offset 0xdeadbeef -S | FileCheck --check-prefix=CHECK-OFFSET %s4; RUN: opt < %s -passes=asan -asan-mapping-scale 1 -S | FileCheck --check-prefix=CHECK-SCALE %s5; RUN: opt < %s -passes=asan -asan-mapping-offset 0xc0ffee -asan-mapping-scale 0 -S | FileCheck --check-prefix=CHECK-BOTH %s6target triple = "x86_64-unknown-linux-gnu"7 8define i32 @read_offset(ptr %a) sanitize_address {9entry:10  %tmp1 = load i32, ptr %a, align 411  ret i32 %tmp112}13; CHECK-OFFSET-LABEL: @read_offset14; CHECK-OFFSET-NOT: ret15; CHECK-OFFSET: lshr {{.*}} 316; CHECK-OFFSET-NEXT: add{{.*}}373592855917; CHECK-OFFSET: ret18 19define i32 @read_scale(ptr %a) sanitize_address {20entry:21  %tmp1 = load i32, ptr %a, align 422  ret i32 %tmp123}24; CHECK-SCALE-LABEL: @read_scale25; CHECK-SCALE-NOT: ret26; CHECK-SCALE: lshr {{.*}} 127; CHECK-SCALE-NEXT: add{{.*}}28; CHECK-SCALE: ret29 30define i32 @read_both(ptr %a) sanitize_address {31entry:32  %tmp1 = load i32, ptr %a, align 433  ret i32 %tmp134}35; CHECK-BOTH-LABEL: @read_both36; CHECK-BOTH-NOT: ret37; CHECK-BOTH: lshr {{.*}} 038; CHECK-BOTH-NEXT: add{{.*}}1264843039; CHECK-BOTH: ret40