| ; RUN: llvm-as < %s | llvm-dis > %t1.ll |
| ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll |
| ; RUN: diff %t1.ll %t2.ll |
| |
| define fastcc void @foo() { |
| ret void |
| } |
| |
| define coldcc void @bar() { |
| call fastcc void @foo( ) |
| ret void |
| } |
| |
| define void @structret({ i8 }* sret %P) { |
| call void @structret( { i8 }* sret %P ) |
| ret void |
| } |
| |
| define void @foo2() { |
| ret void |
| } |
| |
| define coldcc void @bar2() { |
| call fastcc void @foo( ) |
| ret void |
| } |
| |
| define cc42 void @bar3() { |
| invoke fastcc void @foo( ) |
| to label %Ok unwind label %U |
| |
| Ok: |
| ret void |
| |
| U: |
| %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 |
| cleanup |
| resume { i8*, i32 } %exn |
| } |
| |
| define void @bar4() { |
| call cc42 void @bar( ) |
| invoke cc42 void @bar3( ) |
| to label %Ok unwind label %U |
| |
| Ok: |
| ret void |
| |
| U: |
| %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 |
| cleanup |
| resume { i8*, i32 } %exn |
| } |
| |
| declare i32 @__gxx_personality_v0(...) |