Home | History | Annotate | Download | only in Verifier
      1 ; RUN: llvm-as %s -o /dev/null
      2 
      3 ; Should assemble without error.
      4 
      5 declare void @similar_param_ptrty_callee(i8*)
      6 define void @similar_param_ptrty(i32*) {
      7   musttail call void @similar_param_ptrty_callee(i8* null)
      8   ret void
      9 }
     10 
     11 declare i8* @similar_ret_ptrty_callee()
     12 define 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 }
     17 
     18 declare x86_thiscallcc void @varargs_thiscall(i8*, ...)
     19 define x86_thiscallcc void @varargs_thiscall_thunk(i8* %this, ...) {
     20   musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...)
     21   ret void
     22 }
     23 
     24 declare x86_fastcallcc void @varargs_fastcall(i8*, ...)
     25 define x86_fastcallcc void @varargs_fastcall_thunk(i8* %this, ...) {
     26   musttail call x86_fastcallcc void (i8*, ...) @varargs_fastcall(i8* %this, ...)
     27   ret void
     28 }
     29 
     30 define x86_thiscallcc void @varargs_thiscall_unreachable(i8* %this, ...) {
     31   unreachable
     32 }
     33 
     34 define x86_thiscallcc void @varargs_thiscall_ret_unreachable(i8* %this, ...) {
     35   musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...)
     36   ret void
     37 bb1:
     38   ret void
     39 }
     40