mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
4c16866a59
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.
22 lines
668 B
LLVM
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*)
|