Home | History | Annotate | Download | only in Feature
      1 ; RUN: llvm-as < %s | llvm-dis > %t1.ll
      2 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
      3 ; RUN: diff %t1.ll %t2.ll
      4 
      5 define fastcc void @foo() {
      6         ret void
      7 }
      8 
      9 define coldcc void @bar() {
     10         call fastcc void @foo( )
     11         ret void
     12 }
     13 
     14 define void @structret({ i8 }* sret  %P) {
     15         call void @structret( { i8 }* sret  %P )
     16         ret void
     17 }
     18 
     19 define void @foo2() {
     20         ret void
     21 }
     22 
     23 define coldcc void @bar2() {
     24         call fastcc void @foo( )
     25         ret void
     26 }
     27 
     28 define cc42 void @bar3() personality i32 (...)* @__gxx_personality_v0 {
     29   invoke fastcc void @foo( )
     30     to label %Ok unwind label %U
     31 
     32 Ok:
     33   ret void
     34 
     35 U:
     36   %exn = landingpad {i8*, i32}
     37             cleanup
     38   resume { i8*, i32 } %exn
     39 }
     40 
     41 define void @bar4() personality i32 (...)* @__gxx_personality_v0 {
     42   call cc42 void @bar( )
     43   invoke cc42 void @bar3( )
     44     to label %Ok unwind label %U
     45 
     46 Ok:
     47   ret void
     48 
     49 U:
     50   %exn = landingpad {i8*, i32}
     51             cleanup
     52   resume { i8*, i32 } %exn
     53 }
     54 
     55 declare ghccc void @ghc_callee()
     56 
     57 define void @ghc_caller() {
     58   call ghccc void @ghc_callee()
     59   ret void
     60 }
     61 
     62 declare hhvm_ccc void @hhvm_c_callee()
     63 
     64 define hhvmcc void @hhvm_caller() {
     65   call hhvm_ccc void @hhvm_c_callee()
     66   ret void
     67 }
     68 
     69 declare i32 @__gxx_personality_v0(...)
     70