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 7define void @_Z4testiiiiiddddd(i32 %u1, i32 %u2, i32 %u3, i32 %u4, i32 %u5, double %v1, double %v2, double %v3, double %v4, double %v5) section ".test_section" { 8entry: 9 invoke void @_Z5printiiiii(i32 %u1, i32 %u2, i32 %u3, i32 %u4, i32 %u5) 10 to label %try.cont unwind label %lpad 11 12lpad: ; 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 20invoke.cont2: ; preds = %lpad 21 tail call void @__cxa_end_catch() 22 br label %try.cont 23 24try.cont: ; preds = %entry, %invoke.cont2 25 ret void 26 27lpad1: ; 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 33eh.resume: ; preds = %lpad1 34 resume { i8*, i32 } %3 35 36terminate.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 43declare void @_Z5printiiiii(i32, i32, i32, i32, i32) 44 45declare i32 @__gxx_personality_v0(...) 46 47declare i8* @__cxa_begin_catch(i8*) 48 49declare void @_Z5printddddd(double, double, double, double, double) 50 51declare void @__cxa_end_catch() 52 53declare void @_ZSt9terminatev() 54 55; CHECK: section .test_section 56; CHECK: section .ARM.extab.test_section 57; CHECK-NEXT: 0000 00000000 b0b0b000 58; CHECK: section .ARM.exidx.test_section 59; CHECK-NEXT: 0000 00000000 00000000 60