| ; RUN: llc -mtriple s390x-zos -filetype=obj %s -o %t.o | |
| ; RUN: llc -mtriple s390x-zos < %s | FileCheck %s | |
| define { ptr, i32 } @fn_with_lpad() personality ptr @__zos_cxx_personality_v2 { | |
| start: | |
| %_0 = invoke double null(double 0.0, double 0.0, double 0.0) | |
| to label %bb1 unwind label %terminate | |
| terminate: | |
| %0 = landingpad { ptr, i32 } | |
| filter [0 x ptr] zeroinitializer | |
| ret { ptr, i32 } %0 | |
| bb1: | |
| ret { ptr, i32 } zeroinitializer | |
| } | |
| define double @fn_with_const_pool() { | |
| start: | |
| ret double 1.0 ; forces a constant pool entry (L#CPI1_0) | |
| } | |
| declare i32 @__zos_cxx_personality_v2(...) | |
| ; CHECK: C_WSA64 CATTR ALIGN(2),FILL(0),NOTEXECUTABLE,RMODE(64),PART(.gcc_excepti | |
| ; CHECK-NEXT: ion_table.fn_with_lpad) | |
| ; CHECK-NEXT: .gcc_exception_table.fn_with_lpad XATTR LINKAGE(XPLINK),REFERENCE(DATA), | |
| ; CHECK-NEXT: ,SCOPE(SECTION) | |
| ; CHECK-NEXT: DS 0B | |
| ; CHECK-NEXT: * @LPStart Encoding = omit | |
| ; CHECK-NEXT: DC XL1'FF' | |
| ; CHECK-NEXT: * @TType Encoding = absptr | |
| ; CHECK-NEXT: DC XL1'00' | |
| ; CHECK-NEXT: * Call site Encoding = uleb128 | |
| ; CHECK-NEXT: DC XL1'01' | |
| ; CHECK-NEXT: * >> Call Site 1 << | |
| ; CHECK-NEXT: * Call between L#tmp0 and L#tmp1 | |
| ; CHECK-NEXT: * jumps to L#tmp2 | |
| ; CHECK-NEXT: * On action: 1 | |
| ; CHECK-NEXT: DC XL1'01' | |
| ; CHECK-NEXT: * >> Action Record 1 << | |
| ; CHECK-NEXT: * Filter TypeInfo -1 | |
| ; CHECK-NEXT: DC XL1'7F' | |
| ; CHECK-NEXT: * No further actions | |
| ; CHECK-NEXT: DC XL1'00' | |
| ; CHECK-NEXT: DS 0B | |
| ; CHECK-NEXT: * >> Filter TypeInfos << | |
| ; CHECK-NEXT: DC XL1'00' | |
| ; CHECK-NEXT: DS 0B |