@@ -11,26 +11,29 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
1111declare void @llvm.lifetime.start.p0 (i64 , ptr nocapture ) nounwind
1212declare void @llvm.lifetime.end.p0 (i64 , ptr nocapture ) nounwind
1313
14- define i32 @basic_test () sanitize_address {
15- ; CHECK-LABEL: define i32 @basic_test()
14+ define i32 @basic_test (i64 %i ) sanitize_address {
15+ ; CHECK-LABEL: define i32 @basic_test(
1616
1717entry:
1818 %retval = alloca i32 , align 4
19- %c = alloca i8 , align 1
19+ %c = alloca [ 2 x i8 ] , align 1
2020
2121 ; Memory is poisoned in prologue: F1F1F1F104F3F8F2
2222 ; CHECK-UAS: store i64 -866676825215864335, ptr %{{[0-9]+}}
23+ ; CHECK-UAS-SS-NOT: store i64
2324
2425 call void @llvm.lifetime.start.p0 (i64 1 , ptr %c )
2526 ; Memory is unpoisoned at llvm.lifetime.start: 01
26- ; CHECK-UAS: store i8 1 , ptr %{{[0-9]+}}
27+ ; CHECK-UAS: store i8 2 , ptr %{{[0-9]+}}
2728
29+ %ci = getelementptr inbounds [2 x i8 ], ptr %c , i64 0 , i64 %i
2830 store volatile i32 0 , ptr %retval
29- store volatile i8 0 , ptr %c , align 1
31+ store volatile i8 0 , ptr %ci , align 1
3032
3133 call void @llvm.lifetime.end.p0 (i64 1 , ptr %c )
3234 ; Memory is poisoned at llvm.lifetime.end: F8
3335 ; CHECK-UAS: store i8 -8, ptr %{{[0-9]+}}
36+ ; CHECK-UAS-SS-NOT: store i8 -8,
3437
3538 ; Unpoison memory at function exit in UAS mode.
3639 ; CHECK-UAS: store i64 0, ptr %{{[0-9]+}}
0 commit comments