1	.syntax unified
2	.arch armv6t2
3
4	.macro	define,name,type
5	.type	\name,%gnu_indirect_function
6	\type
7\name:
8	mov	pc,lr
9	.size	\name,.-\name
10	.endm
11
12	.macro	test_relocs,name,width
13	bl\width \name
14	b\width \name
15	beq\width \name
16	ldr	r4,1f
17	ldr	r4,2f
181:
19	.word	\name(GOT)
202:
21	.word	\name(GOT_PREL)
22	.endm
23
24	.global	f1
25	.global	f2
26
27	.global	f3
28	.global	f4
29	.hidden	f3
30	.hidden	f4
31
32	define	f1,.arm
33	define	f2,.thumb_func
34	define	f3,.arm
35	define	f4,.thumb_func
36
37	.globl	_start
38	.type	_start,%function
39	.arm
40_start:
41	test_relocs foo
42	test_relocs f1,
43	test_relocs f2,
44	.size	_start,.-_start
45
46	.globl	_thumb
47	.type	_thumb,%function
48	.thumb_func
49_thumb:
50	test_relocs foo
51	test_relocs f3,.w
52	test_relocs f4,.w
53	.size	_thumb,.-_thumb
54
55	.data
56foo:
57	.word	0x11223344
58	.word	__irel_start
59	.word	__irel_end
60