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