mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
In this situation we would always have already flagged an error on the statepoint intrinsic, but then we carry on to parse other, related GC intrinsics, and could end up crashing during that verification when they try to access data from the malformed statepoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231759 91177308-0d34-0410-b5e6-96231b3b80d8
21 lines
777 B
LLVM
21 lines
777 B
LLVM
; RUN: not opt -verify 2>&1 < %s | FileCheck %s
|
|
|
|
; CHECK: gc.statepoint: mismatch in number of call arguments
|
|
|
|
declare zeroext i1 @return0i1()
|
|
|
|
; Function Attrs: nounwind
|
|
declare i32 @llvm.experimental.gc.statepoint.p0f0i1f(i1 ()*, i32, i32, ...) #0
|
|
|
|
; Function Attrs: nounwind
|
|
declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32, i32, i32) #0
|
|
|
|
define i32 addrspace(1)* @0(i32 addrspace(1)* %dparam) {
|
|
%a00 = load i32, i32 addrspace(1)* %dparam
|
|
%to0 = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f0i1f(i1 ()* @return0i1, i32 9, i32 0, i2 0, i32 addrspace(1)* %dparam)
|
|
%relocate = call i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32 %to0, i32 0, i32 4)
|
|
ret i32 addrspace(1)* %relocate
|
|
}
|
|
|
|
attributes #0 = { nounwind }
|