1;; Test if we are still able to compile even when the personality routine is just an alias. 2 3; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec \ 4; RUN: -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s --check-prefixes=SYM,SYM32 5; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec \ 6; RUN: -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s --check-prefixes=SYM,SYM64 7 8@__xlcxx_personality_v1 = alias i32 (), ptr @__gxx_personality_v0 9define i32 @__gxx_personality_v0() { 10entry: 11 ret i32 1 12} 13 14define dso_local signext i32 @_Z3foov() #0 personality ptr @__xlcxx_personality_v1 { 15entry: 16 %retval = alloca i32, align 4 17 %exn.slot = alloca ptr, align 8 18 %ehselector.slot = alloca i32, align 4 19 invoke void @_Z3barv() 20 to label %invoke.cont unwind label %lpad 21 22invoke.cont: ; preds = %entry 23 br label %try.cont 24 25lpad: ; preds = %entry 26 %0 = landingpad { ptr, i32 } 27 catch ptr null 28 %1 = extractvalue { ptr, i32 } %0, 0 29 store ptr %1, ptr %exn.slot, align 8 30 %2 = extractvalue { ptr, i32 } %0, 1 31 store i32 %2, ptr %ehselector.slot, align 4 32 br label %catch 33 34catch: ; preds = %lpad 35 %exn = load ptr, ptr %exn.slot, align 8 36 br label %return 37 38try.cont: ; preds = %invoke.cont 39 store i32 2, ptr %retval, align 4 40 br label %return 41 42return: ; preds = %try.cont, %catch 43 ret i32 1 44} 45 46declare void @_Z3barv() 47 48; SYM: .globl __gxx_personality_v0[DS] # -- Begin function __gxx_personality_v0 49; SYM: .globl .__gxx_personality_v0 50; SYM: .align 4 51; SYM: .csect __gxx_personality_v0[DS] 52; SYM: __xlcxx_personality_v1: # @__gxx_personality_v0 53; SYM32: .vbyte 4, .__gxx_personality_v0 54; SYM32: .vbyte 4, TOC[TC0] 55; SYM32: .vbyte 4, 0 56; SYM64: .vbyte 8, .__gxx_personality_v0 57; SYM64: .vbyte 8, TOC[TC0] 58; SYM64: .vbyte 8, 0 59; SYM: .csect ..text..[PR],5 60; SYM: .__gxx_personality_v0: 61; SYM: .__xlcxx_personality_v1: 62; SYM: # %bb.0: # %entry 63; SYM: li 3, 1 64; SYM: blr 65 66; SYM: .csect .eh_info_table[RW],2 67; SYM: __ehinfo.1: 68; SYM: .vbyte 4, 0 69; SYM32: .align 2 70; SYM32: .vbyte 4, GCC_except_table1 71; SYM32: .vbyte 4, __xlcxx_personality_v1 72; SYM64: .align 3 73; SYM64: .vbyte 8, GCC_except_table1 74; SYM64: .vbyte 8, __xlcxx_personality_v1 75