diff options
Diffstat (limited to 'test/Instrumentation/AddressSanitizer/basic.ll')
-rw-r--r-- | test/Instrumentation/AddressSanitizer/basic.ll | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/test/Instrumentation/AddressSanitizer/basic.ll b/test/Instrumentation/AddressSanitizer/basic.ll index 4863a3d..7d1aa0b 100644 --- a/test/Instrumentation/AddressSanitizer/basic.ll +++ b/test/Instrumentation/AddressSanitizer/basic.ll @@ -34,7 +34,7 @@ define i32 @test_load(i32* %a) sanitize_address { entry: - %tmp1 = load i32* %a + %tmp1 = load i32* %a, align 4 ret i32 %tmp1 } @@ -66,7 +66,7 @@ define void @test_store(i32* %a) sanitize_address { ; entry: - store i32 42, i32* %a + store i32 42, i32* %a, align 4 ret void } @@ -115,6 +115,18 @@ define void @i40test(i40* %a, i40* %b) nounwind uwtable sanitize_address { ; CHECK: __asan_report_store_n{{.*}}, i64 5) ; CHECK: ret void +define void @i64test_align1(i64* %b) nounwind uwtable sanitize_address { + entry: + store i64 0, i64* %b, align 1 + ret void +} + +; CHECK-LABEL: i64test_align1 +; CHECK: __asan_report_store_n{{.*}}, i64 8) +; CHECK: __asan_report_store_n{{.*}}, i64 8) +; CHECK: ret void + + define void @i80test(i80* %a, i80* %b) nounwind uwtable sanitize_address { entry: %t = load i80* %a @@ -139,4 +151,21 @@ entry: ; CHECK-NOT: __asan_report ; CHECK: ret i32 +declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind +declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) nounwind +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) nounwind + +define void @memintr_test(i8* %a, i8* %b) nounwind uwtable sanitize_address { + entry: + tail call void @llvm.memset.p0i8.i64(i8* %a, i8 0, i64 100, i32 1, i1 false) + tail call void @llvm.memmove.p0i8.p0i8.i64(i8* %a, i8* %b, i64 100, i32 1, i1 false) + tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* %b, i64 100, i32 1, i1 false) + ret void +} + +; CHECK-LABEL: memintr_test +; CHECK: __asan_memset +; CHECK: __asan_memmove +; CHECK: __asan_memcpy +; CHECK: ret void |