1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Verifier/x86_intr.ll
Matt Arsenault 4c16866a59 OpaquePtr: Require byval on x86_intrcc parameter 0
Currently the backend special cases x86_intrcc and treats the first
parameter as byval. Make the IR require byval for this parameter to
remove this special case, and avoid the dependence on the pointee
element type.

Fixes bug 46672.

I'm not sure the IR is enforcing all the calling convention
constraints. clang seems to ignore the attribute for empty parameter
lists, but the IR tolerates it.
2020-12-14 16:34:37 -05:00

22 lines
668 B
LLVM

; RUN: not llvm-as < %s 2>&1 | FileCheck %s
; CHECK: Calling convention parameter requires byval
; CHECK-NEXT: void (i32)* @non_ptr_arg0
define x86_intrcc void @non_ptr_arg0(i32) {
ret void
}
; CHECK: Calling convention parameter requires byval
; CHECK-NEXT: void (i32*)* @non_byval_ptr_arg0
define x86_intrcc void @non_byval_ptr_arg0(i32*) {
ret void
}
; CHECK: Calling convention parameter requires byval
; CHECK-NEXT: void (i32)* @non_ptr_arg0_decl
declare x86_intrcc void @non_ptr_arg0_decl(i32)
; CHECK: Calling convention parameter requires byval
; CHECK-NEXT: void (i32*)* @non_byval_ptr_arg0_decl
declare x86_intrcc void @non_byval_ptr_arg0_decl(i32*)