Skip to content

Commit 1441856

Browse files
committed
Add a test case in test/Verifier/intrinsic-immarg.ll
1 parent 25bf29f commit 1441856

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

llvm/test/Verifier/intrinsic-immarg.ll

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,37 @@ define void @calls_statepoint(ptr addrspace(1) %arg0, i64 %arg1, i32 %arg2, i32
238238
ret void
239239
}
240240

241+
declare void @llvm.experimental.patchpoint.void(i64, i32, ptr, i32, ...)
242+
declare i64 @llvm.experimental.patchpoint.i64(i64, i32, ptr, i32, ...)
243+
244+
define void @test_patchpoint(i64 %arg0, i32 %arg1, i32 %arg2) {
245+
; CHECK: immarg operand has non-immediate parameter
246+
; CHECK-NEXT: i64 %arg0
247+
; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 %arg0, i32 4, ptr null, i32 0)
248+
; CHECK: immarg operand has non-immediate parameter
249+
; CHECK-NEXT: i32 %arg1
250+
; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 %arg1, ptr null, i32 0)
251+
; CHECK: immarg operand has non-immediate parameter
252+
; CHECK-NEXT: i32 %arg2
253+
; CHECK-NEXT: call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 4, ptr null, i32 %arg2)
254+
; CHECK: immarg operand has non-immediate parameter
255+
; CHECK-NEXT: i64 %arg0
256+
; CHECK-NEXT: %patchpoint0 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 %arg0, i32 4, ptr null, i32 0)
257+
; CHECK: immarg operand has non-immediate parameter
258+
; CHECK-NEXT: i32 %arg1
259+
; CHECK-NEXT: %patchpoint1 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 %arg1, ptr null, i32 0)
260+
; CHECK: immarg operand has non-immediate parameter
261+
; CHECK-NEXT: i32 %arg2
262+
; CHECK-NEXT: %patchpoint2 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 4, ptr null, i32 %arg2)
263+
call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 %arg0, i32 4, ptr null, i32 0)
264+
call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 %arg1, ptr null, i32 0)
265+
call void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 4, ptr null, i32 %arg2)
266+
%patchpoint0 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 %arg0, i32 4, ptr null, i32 0)
267+
%patchpoint1 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 %arg1, ptr null, i32 0)
268+
%patchpoint2 = call i64 (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.i64(i64 0, i32 4, ptr null, i32 %arg2)
269+
ret void
270+
}
271+
241272
declare void @llvm.hwasan.check.memaccess(ptr, ptr, i32)
242273

243274
define void @hwasan_check_memaccess(ptr %arg0,ptr %arg1, i32 %arg2) {

0 commit comments

Comments
 (0)