1 ; RUN: llc -mtriple arm-unknown-linux-gnueabi \ 2 ; RUN: -arm-enable-ehabi -arm-enable-ehabi-descriptors \ 3 ; RUN: -filetype=obj -o - %s \ 4 ; RUN: | llvm-objdump -s - \ 5 ; RUN: | FileCheck %s 6 7 define void @_Z4testiiiiiddddd(i32 %u1, i32 %u2, i32 %u3, i32 %u4, i32 %u5, double %v1, double %v2, double %v3, double %v4, double %v5) { 8 entry: 9 invoke void @_Z5printiiiii(i32 %u1, i32 %u2, i32 %u3, i32 %u4, i32 %u5) 10 to label %try.cont unwind label %lpad 11 12 lpad: ; preds = %entry 13 %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) 14 catch i8* null 15 %1 = extractvalue { i8*, i32 } %0, 0 16 %2 = tail call i8* @__cxa_begin_catch(i8* %1) nounwind 17 invoke void @_Z5printddddd(double %v1, double %v2, double %v3, double %v4, double %v5) 18 to label %invoke.cont2 unwind label %lpad1 19 20 invoke.cont2: ; preds = %lpad 21 tail call void @__cxa_end_catch() 22 br label %try.cont 23 24 try.cont: ; preds = %entry, %invoke.cont2 25 ret void 26 27 lpad1: ; preds = %lpad 28 %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) 29 cleanup 30 invoke void @__cxa_end_catch() 31 to label %eh.resume unwind label %terminate.lpad 32 33 eh.resume: ; preds = %lpad1 34 resume { i8*, i32 } %3 35 36 terminate.lpad: ; preds = %lpad1 37 %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) 38 catch i8* null 39 tail call void @_ZSt9terminatev() noreturn nounwind 40 unreachable 41 } 42 43 declare void @_Z5printiiiii(i32, i32, i32, i32, i32) 44 45 declare i32 @__gxx_personality_v0(...) 46 47 declare i8* @__cxa_begin_catch(i8*) 48 49 declare void @_Z5printddddd(double, double, double, double, double) 50 51 declare void @__cxa_end_catch() 52 53 declare void @_ZSt9terminatev() 54 55 ; CHECK: section .text 56 ; CHECK: section .ARM.extab 57 ; CHECK-NEXT: 0000 00000000 b0b0b000 58 ; CHECK: section .ARM.exidx 59 ; CHECK-NEXT: 0000 00000000 00000000 60