@ RUN: %{cxx} %{flags} %{link_flags} %s -o %t.exe
@ RUN: %t.exe
@ UNSUPPORTED: no-exceptions

@ PURPOSE: Check that 0x00 is a valid value for ttype encoding.  LLVM and
@ GCC 4.6 are generating 0x00 as ttype encoding.  libc++abi should provide
@ legacy support.

@ NOTE:
@
@ This file is generated from the following C++ source code:
@
@ ```
@ int main() {
@   try {
@     throw 5;
@   } catch (int i) {
@     if (i != 5)
@       abort();
@     return 0;
@   }
@ }
@ ```

	.syntax unified

	.text
	.globl	main
	.p2align	2
	.type	main,%function
main:                                   @ @main
.Lfunc_begin0:
	.fnstart
@ BB#0:                                 @ %entry
	.save	{r11, lr}
	push	{r11, lr}
	.setfp	r11, sp
	mov	r11, sp
	mov	r0, #4
	bl	__cxa_allocate_exception
	mov	r1, #5
	str	r1, [r0]
.Ltmp0:
	ldr	r1, .LCPI0_0
	mov	r2, #0
	bl	__cxa_throw
.Ltmp1:

@ BB#2:                                 @ %lpad
.Ltmp2:
	bl	__cxa_begin_catch
	ldr	r0, [r0]
	cmp	r0, #5
	bne	.LBB0_4
@ BB#3:                                 @ %if.end
	bl	__cxa_end_catch
	mov	r0, #0
	pop	{r11, lr}
	bx	lr
.LBB0_4:                                @ %if.then
	bl	abort
	.p2align	2
@ BB#5:
.LCPI0_0:
	.long	_ZTIi
.Lfunc_end0:

	.size	main, .Lfunc_end0-main
	.globl	__gxx_personality_v0
	.personality __gxx_personality_v0
	.handlerdata
	.p2align	2
GCC_except_table0:
.Lexception0:
	.byte	255                     @ @LPStart Encoding = omit
	.byte	0                       @ @TType Encoding = absptr
	.asciz	"\257\200"              @ @TType base offset
	.byte	3                       @ Call site Encoding = udata4
	.byte	39                      @ Call site table length
	.long	.Lfunc_begin0-.Lfunc_begin0 @ >> Call Site 1 <<
	.long	.Ltmp0-.Lfunc_begin0    @   Call between .Lfunc_begin0 and .Ltmp0
	.long	0                       @     has no landing pad
	.byte	0                       @   On action: cleanup
	.long	.Ltmp0-.Lfunc_begin0    @ >> Call Site 2 <<
	.long	.Ltmp1-.Ltmp0           @   Call between .Ltmp0 and .Ltmp1
	.long	.Ltmp2-.Lfunc_begin0    @     jumps to .Ltmp2
	.byte	1                       @   On action: 1
	.long	.Ltmp1-.Lfunc_begin0    @ >> Call Site 3 <<
	.long	.Lfunc_end0-.Ltmp1      @   Call between .Ltmp1 and .Lfunc_end0
	.long	0                       @     has no landing pad
	.byte	0                       @   On action: cleanup
	.byte	1                       @ >> Action Record 1 <<
                                        @   Catch TypeInfo 1
	.byte	0                       @   No further actions
                                        @ >> Catch TypeInfos <<
	.long	_ZTIi(target2)          @ TypeInfo 1
	.p2align	2
	.fnend
