1@ RUN: %{cxx} %{flags} %{link_flags} %s -o %t.exe 2@ RUN: %t.exe 3@ UNSUPPORTED: 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 31main: @ @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 73GCC_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