blob: 150e9491b750adfaa0ab397dda9ac5f8fe470b04 [file] [log] [blame]
Reid Kleckner710c1a42014-04-24 20:14:34 +00001; RUN: llvm-as %s -o /dev/null
2
3; Should assemble without error.
4
5declare void @similar_param_ptrty_callee(i8*)
6define void @similar_param_ptrty(i32*) {
7 musttail call void @similar_param_ptrty_callee(i8* null)
8 ret void
9}
10
11declare i8* @similar_ret_ptrty_callee()
12define i32* @similar_ret_ptrty() {
13 %v = musttail call i8* @similar_ret_ptrty_callee()
14 %w = bitcast i8* %v to i32*
15 ret i32* %w
16}
Reid Klecknerdae28732014-08-29 21:25:28 +000017
18declare x86_thiscallcc void @varargs_thiscall(i8*, ...)
19define x86_thiscallcc void @varargs_thiscall_thunk(i8* %this, ...) {
David Blaikie32b845d2015-04-16 23:24:18 +000020 musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...)
Reid Klecknerdae28732014-08-29 21:25:28 +000021 ret void
22}
23
24declare x86_fastcallcc void @varargs_fastcall(i8*, ...)
25define x86_fastcallcc void @varargs_fastcall_thunk(i8* %this, ...) {
David Blaikie32b845d2015-04-16 23:24:18 +000026 musttail call x86_fastcallcc void (i8*, ...) @varargs_fastcall(i8* %this, ...)
Reid Klecknerdae28732014-08-29 21:25:28 +000027 ret void
28}
29
30define x86_thiscallcc void @varargs_thiscall_unreachable(i8* %this, ...) {
31 unreachable
32}
33
34define x86_thiscallcc void @varargs_thiscall_ret_unreachable(i8* %this, ...) {
David Blaikie32b845d2015-04-16 23:24:18 +000035 musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...)
Reid Klecknerdae28732014-08-29 21:25:28 +000036 ret void
37bb1:
38 ret void
39}