1 @ RUN: %cxx %flags %link_flags %s -o %t.exe 2 @ RUN: %t.exe 3 @ UNSUPPORTED: libcxxabi-no-exceptions 4 5 @ PURPOSE: Check that 0x00 is a valid value for ttype encoding. LLVM and 6 @ GCC 4.6 are generating 0x00 as ttype encoding. libc++abi should provide 7 @ legacy support. 8 9 @ NOTE: 10 @ 11 @ This file is generated from the following C++ source code: 12 @ 13 @ ``` 14 @ int main() { 15 @ try { 16 @ throw 5; 17 @ } catch (int i) { 18 @ if (i != 5) 19 @ abort(); 20 @ return 0; 21 @ } 22 @ } 23 @ ``` 24 25 .syntax unified 26 27 .text 28 .globl main 29 .p2align 2 30 .type main,%function 31 main: @ @main 32 .Lfunc_begin0: 33 .fnstart 34 @ BB#0: @ %entry 35 .save {r11, lr} 36 push {r11, lr} 37 .setfp r11, sp 38 mov r11, sp 39 mov r0, #4 40 bl __cxa_allocate_exception 41 mov r1, #5 42 str r1, [r0] 43 .Ltmp0: 44 ldr r1, .LCPI0_0 45 mov r2, #0 46 bl __cxa_throw 47 .Ltmp1: 48 49 @ BB#2: @ %lpad 50 .Ltmp2: 51 bl __cxa_begin_catch 52 ldr r0, [r0] 53 cmp r0, #5 54 bne .LBB0_4 55 @ BB#3: @ %if.end 56 bl __cxa_end_catch 57 mov r0, #0 58 pop {r11, lr} 59 bx lr 60 .LBB0_4: @ %if.then 61 bl abort 62 .p2align 2 63 @ BB#5: 64 .LCPI0_0: 65 .long _ZTIi 66 .Lfunc_end0: 67 68 .size main, .Lfunc_end0-main 69 .globl __gxx_personality_v0 70 .personality __gxx_personality_v0 71 .handlerdata 72 .p2align 2 73 GCC_except_table0: 74 .Lexception0: 75 .byte 255 @ @LPStart Encoding = omit 76 .byte 0 @ @TType Encoding = absptr 77 .asciz "\257\200" @ @TType base offset 78 .byte 3 @ Call site Encoding = udata4 79 .byte 39 @ Call site table length 80 .long .Lfunc_begin0-.Lfunc_begin0 @ >> Call Site 1 << 81 .long .Ltmp0-.Lfunc_begin0 @ Call between .Lfunc_begin0 and .Ltmp0 82 .long 0 @ has no landing pad 83 .byte 0 @ On action: cleanup 84 .long .Ltmp0-.Lfunc_begin0 @ >> Call Site 2 << 85 .long .Ltmp1-.Ltmp0 @ Call between .Ltmp0 and .Ltmp1 86 .long .Ltmp2-.Lfunc_begin0 @ jumps to .Ltmp2 87 .byte 1 @ On action: 1 88 .long .Ltmp1-.Lfunc_begin0 @ >> Call Site 3 << 89 .long .Lfunc_end0-.Ltmp1 @ Call between .Ltmp1 and .Lfunc_end0 90 .long 0 @ has no landing pad 91 .byte 0 @ On action: cleanup 92 .byte 1 @ >> Action Record 1 << 93 @ Catch TypeInfo 1 94 .byte 0 @ No further actions 95 @ >> Catch TypeInfos << 96 .long _ZTIi(target2) @ TypeInfo 1 97 .p2align 2 98 .fnend 99