	.file	"extr_call.c_add_builtin_candidate.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	add_builtin_candidate, @function
add_builtin_candidate:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	mov	r15, r8
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, rcx
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, r9
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, rdi
	mov	edi, edx
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	eax, DWORD PTR 112[rsp]
	mov	rbx, QWORD PTR 96[rsp]
	mov	r14, QWORD PTR 104[rsp]
	mov	DWORD PTR 12[rsp], eax
	lea	eax, -134[rsi]
	cmp	eax, 1
	ja	.L2
	mov	rax, QWORD PTR integer_zero_node[rip]
	mov	r12, QWORD PTR integer_type_node[rip]
	mov	QWORD PTR 8[rbx], rax
.L2:
	add	esi, -128
	cmp	esi, 30
	ja	.L3
	lea	rcx, .L5[rip]
	movsx	rax, DWORD PTR [rcx+rsi*4]
	add	rax, rcx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L5:
	.long	.L20-.L5
	.long	.L6-.L5
	.long	.L15-.L5
	.long	.L6-.L5
	.long	.L19-.L5
	.long	.L18-.L5
	.long	.L19-.L5
	.long	.L18-.L5
	.long	.L17-.L5
	.long	.L3-.L5
	.long	.L9-.L5
	.long	.L16-.L5
	.long	.L15-.L5
	.long	.L14-.L5
	.long	.L10-.L5
	.long	.L13-.L5
	.long	.L12-.L5
	.long	.L10-.L5
	.long	.L10-.L5
	.long	.L6-.L5
	.long	.L10-.L5
	.long	.L11-.L5
	.long	.L10-.L5
	.long	.L10-.L5
	.long	.L9-.L5
	.long	.L8-.L5
	.long	.L6-.L5
	.long	.L7-.L5
	.long	.L6-.L5
	.long	.L6-.L5
	.long	.L4-.L5
	.text
	.p2align 4,,10
	.p2align 3
.L14:
	lea	eax, -129[rdi]
	cmp	eax, 28
	ja	.L51
	lea	rcx, .L53[rip]
	movsx	rax, DWORD PTR [rcx+rax*4]
	add	rax, rcx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L53:
	.long	.L52-.L53
	.long	.L55-.L53
	.long	.L52-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L54-.L53
	.long	.L56-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L55-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L54-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L52-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L51-.L53
	.long	.L52-.L53
	.long	.L51-.L53
	.long	.L52-.L53
	.long	.L52-.L53
	.text
	.p2align 4,,10
	.p2align 3
.L35:
	mov	rdi, r12
	call	TYPE_PTR_TO_MEMBER_P@PLT
	test	eax, eax
	je	.L10
	mov	rdi, QWORD PTR [rbx]
	call	null_ptr_cst_p@PLT
	test	eax, eax
	jne	.L85
	.p2align 4,,10
	.p2align 3
.L10:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	je	.L41
	mov	rdi, r12
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	je	.L41
	.p2align 4,,10
	.p2align 3
.L23:
	test	r12, r12
	je	.L76
	mov	rsi, r12
	mov	rdi, r15
	call	same_type_p@PLT
	test	eax, eax
	je	.L156
.L76:
	mov	eax, DWORD PTR 12[rsp]
	mov	r9, r14
	mov	r8, rbx
	mov	rcx, r12
	mov	rdx, r15
	mov	rsi, r13
	mov	rdi, rbp
	mov	DWORD PTR 96[rsp], eax
	add	rsp, 40
	.cfi_def_cfa_offset 56
.L154:
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	jmp	build_builtin_candidate@PLT
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_def_cfa_offset 96
	mov	rdi, r15
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L18:
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR BOOLEAN_TYPE[rip]
	je	.L1
.L19:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L59
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	je	.L1
.L59:
	mov	rdi, r15
	call	build_reference_type@PLT
	mov	r15, rax
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L15:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L157
.L1:
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9:
	.cfi_restore_state
	mov	rdi, r15
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	jne	.L30
.L33:
	mov	rdi, r15
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	je	.L32
	mov	rdi, r12
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	jne	.L23
.L32:
	mov	rdi, r15
	call	TYPE_PTR_TO_MEMBER_P@PLT
	test	eax, eax
	je	.L35
	mov	rdi, QWORD PTR 8[rbx]
	call	null_ptr_cst_p@PLT
	test	eax, eax
	je	.L35
.L47:
	mov	r12, r15
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L41:
	mov	rdi, r15
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L39
.L40:
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR ENUMERAL_TYPE[rip]
	je	.L158
.L43:
	mov	rdi, r15
	call	TYPE_PTR_P@PLT
	test	rax, rax
	je	.L45
	mov	rdi, QWORD PTR 8[rbx]
	call	null_ptr_cst_p@PLT
	test	eax, eax
	jne	.L159
.L45:
	mov	rdi, QWORD PTR [rbx]
	call	null_ptr_cst_p@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	TYPE_PTR_P@PLT
	test	rax, rax
	je	.L1
	mov	rdi, r12
	call	uses_template_parms@PLT
	test	eax, eax
	jne	.L1
.L85:
	mov	r15, r12
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L17:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L160
.L4:
	mov	rdi, r15
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L50
	mov	rdi, r12
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	je	.L50
	mov	r15, QWORD PTR ptrdiff_type_node[rip]
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L20:
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR POINTER_TYPE[rip]
	je	.L23
.L16:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L13:
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	jne	.L26
.L29:
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	je	.L15
	mov	rdi, r12
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L15
.L153:
	mov	r12, QWORD PTR ptrdiff_type_node[rip]
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L12:
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR POINTER_TYPE[rip]
	jne	.L1
	mov	rdi, r12
	call	TYPE_PTR_TO_MEMBER_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r15
	call	TREE_TYPE@PLT
	mov	rdi, r12
	mov	QWORD PTR 16[rsp], rax
	call	TYPE_PTRMEM_CLASS_TYPE@PLT
	mov	rdi, QWORD PTR 16[rsp]
	mov	QWORD PTR 24[rsp], rax
	call	IS_AGGR_TYPE@PLT
	test	rax, rax
	je	.L1
	mov	rsi, QWORD PTR 16[rsp]
	mov	rdi, QWORD PTR 24[rsp]
	call	DERIVED_FROM_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	jne	.L23
	mov	rdi, r12
	call	TYPE_PTRMEM_POINTED_TO_TYPE@PLT
	mov	edi, eax
	call	is_complete@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L11:
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR POINTER_TYPE[rip]
	jne	.L1
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	jne	.L23
	mov	rdi, r15
	call	TREE_TYPE@PLT
	mov	rdi, rax
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR FUNCTION_TYPE[rip]
	jne	.L1
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L8:
	mov	rdi, r15
	call	promoted_arithmetic_type_p@PLT
	test	eax, eax
	jne	.L71
.L74:
	mov	rdi, r15
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L73
	mov	rdi, r15
	call	TYPE_PTR_TO_MEMBER_P@PLT
	test	eax, eax
	je	.L1
.L73:
	mov	rdi, r12
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L23
	mov	rdi, r12
	call	TYPE_PTR_TO_MEMBER_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L7:
	mov	rdi, r15
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L50:
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L1
	jmp	.L153
	.p2align 4,,10
	.p2align 3
.L3:
	xor	eax, eax
	call	gcc_unreachable@PLT
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L156:
	mov	rdi, r15
	call	TREE_CODE@PLT
	mov	rdi, r12
	mov	QWORD PTR 16[rsp], rax
	call	TREE_CODE@PLT
	cmp	QWORD PTR 16[rsp], rax
	jne	.L76
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR REFERENCE_TYPE[rip]
	je	.L81
	mov	rdi, r15
	call	TYPE_PTR_P@PLT
	test	rax, rax
	je	.L82
	mov	rdi, r12
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L81
.L82:
	mov	rdi, r15
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	je	.L80
	mov	rdi, r12
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	jne	.L81
.L80:
	mov	rdi, r15
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	jne	.L81
	mov	rdi, r15
	call	IS_AGGR_TYPE@PLT
	test	rax, rax
	jne	.L81
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR ENUMERAL_TYPE[rip]
	jne	.L76
	.p2align 4,,10
	.p2align 3
.L81:
	sub	rsp, 8
	.cfi_def_cfa_offset 104
	mov	r9, r14
	mov	r8, rbx
	mov	rcx, r15
	mov	eax, DWORD PTR 20[rsp]
	mov	rdx, r15
	mov	rsi, r13
	mov	rdi, rbp
	push	rax
	.cfi_def_cfa_offset 112
	call	build_builtin_candidate@PLT
	mov	eax, DWORD PTR 28[rsp]
	mov	r9, r14
	mov	r8, rbx
	mov	rcx, r12
	mov	rdx, r12
	mov	rsi, r13
	mov	rdi, rbp
	mov	DWORD PTR 112[rsp], eax
	add	rsp, 56
	.cfi_def_cfa_offset 56
	jmp	.L154
.L55:
	.cfi_def_cfa_offset 96
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L59
	jmp	.L1
.L52:
	mov	rdi, r15
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L1
	mov	rdi, r12
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	jne	.L59
	jmp	.L1
.L51:
	xor	eax, eax
	call	gcc_unreachable@PLT
	jmp	.L59
.L56:
	mov	rdi, r15
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	je	.L63
	mov	rdi, r12
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L59
.L63:
	mov	rdi, r15
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	je	.L62
	mov	rdi, r12
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	je	.L62
.L68:
	mov	r12, r15
	jmp	.L59
.L54:
	mov	rdi, r15
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	je	.L55
	mov	rdi, r12
	call	INTEGRAL_TYPE_P@PLT
	test	eax, eax
	je	.L55
	mov	r12, QWORD PTR ptrdiff_type_node[rip]
	jmp	.L59
	.p2align 4,,10
	.p2align 3
.L39:
	mov	rdi, r12
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L23
	jmp	.L40
	.p2align 4,,10
	.p2align 3
.L71:
	mov	rdi, r12
	call	promoted_arithmetic_type_p@PLT
	test	eax, eax
	jne	.L23
	jmp	.L74
	.p2align 4,,10
	.p2align 3
.L30:
	mov	rdi, r12
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	jne	.L23
	jmp	.L33
	.p2align 4,,10
	.p2align 3
.L26:
	mov	rdi, r12
	call	TYPE_PTROB_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L29
	.p2align 4,,10
	.p2align 3
.L160:
	mov	rdi, r12
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L157:
	mov	rdi, r12
	call	ARITHMETIC_TYPE_P@PLT
	test	eax, eax
	jne	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L158:
	mov	rdi, r12
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR ENUMERAL_TYPE[rip]
	jne	.L43
	jmp	.L23
.L62:
	mov	rdi, r15
	call	TYPE_PTR_P@PLT
	test	rax, rax
	je	.L65
	mov	rdi, r12
	call	TYPE_PTR_P@PLT
	test	rax, rax
	jne	.L68
.L65:
	mov	rdi, r15
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	je	.L67
	mov	rdi, r12
	call	TYPE_PTRMEM_P@PLT
	test	rax, rax
	jne	.L68
.L67:
	mov	rdi, r15
	call	TYPE_PTRMEMFUNC_P@PLT
	test	rax, rax
	jne	.L69
	mov	rdi, r15
	call	TREE_CODE@PLT
	cmp	rax, QWORD PTR POINTER_TYPE[rip]
	jne	.L1
.L69:
	mov	rdi, QWORD PTR 8[rbx]
	call	null_ptr_cst_p@PLT
	test	eax, eax
	jne	.L68
	jmp	.L1
.L159:
	mov	rdi, r15
	call	uses_template_parms@PLT
	test	eax, eax
	je	.L47
	jmp	.L45
	.cfi_endproc
.LFE0:
	.size	add_builtin_candidate, .-add_builtin_candidate
	.comm	ptrdiff_type_node,8,8
	.comm	integer_zero_node,8,8
	.comm	integer_type_node,8,8
	.comm	REFERENCE_TYPE,8,8
	.comm	POINTER_TYPE,8,8
	.comm	FUNCTION_TYPE,8,8
	.comm	ENUMERAL_TYPE,8,8
	.comm	BOOLEAN_TYPE,8,8
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_call.c_add_builtin_candidate.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_builtin_candidate, %function
add_builtin_candidate:
	@ args = 20, pretend = 0, frame = 8
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	sub	ip, r1, #134
	cmp	ip, #1
	mov	r5, r3
	ldrls	r3, .L160
	sub	sp, sp, #28
	ldrls	ip, .L160+4
	ldrls	r3, [r3]
	add	r6, sp, #68
	sub	r1, r1, #128
	ldm	r6, {r6, r7, r8, r9}
	mov	r4, r0
	ldr	fp, [sp, #64]
	ldrls	r6, [ip]
	strls	r3, [r7, #4]
	cmp	r1, #30
	ldrls	pc, [pc, r1, asl #2]
	b	.L3
.L5:
	.word	.L20
	.word	.L6
	.word	.L15
	.word	.L6
	.word	.L19
	.word	.L18
	.word	.L19
	.word	.L18
	.word	.L17
	.word	.L3
	.word	.L9
	.word	.L16
	.word	.L15
	.word	.L14
	.word	.L10
	.word	.L13
	.word	.L12
	.word	.L10
	.word	.L10
	.word	.L6
	.word	.L10
	.word	.L11
	.word	.L10
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L6
	.word	.L7
	.word	.L6
	.word	.L6
	.word	.L4
.L14:
	sub	r3, r2, #129
	cmp	r3, #28
	ldrls	pc, [pc, r3, asl #2]
	b	.L51
.L53:
	.word	.L52
	.word	.L55
	.word	.L52
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L54
	.word	.L56
	.word	.L51
	.word	.L51
	.word	.L55
	.word	.L51
	.word	.L51
	.word	.L54
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L52
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L51
	.word	.L52
	.word	.L51
	.word	.L52
	.word	.L52
.L35:
	mov	r0, r6
	bl	TYPE_PTR_TO_MEMBER_P
	cmp	r0, #0
	beq	.L10
	ldr	r0, [r7]
	bl	null_ptr_cst_p
	cmp	r0, #0
	bne	.L85
.L10:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	beq	.L41
	mov	r0, r6
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	beq	.L41
.L23:
	cmp	r6, #0
	beq	.L76
	mov	r1, r6
	mov	r0, fp
	bl	same_type_p
	cmp	r0, #0
	beq	.L155
.L76:
	mov	r3, r6
	mov	r2, fp
	mov	r1, r5
	mov	r0, r4
	str	r9, [sp, #72]
	str	r8, [sp, #68]
	str	r7, [sp, #64]
.L153:
	add	sp, sp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	b	build_builtin_candidate
.L6:
	mov	r0, fp
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	bne	.L23
	b	.L1
.L18:
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+8
	ldr	r3, [r3]
	cmp	r0, r3
	beq	.L1
.L19:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L59
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	beq	.L1
.L59:
	mov	r0, fp
	bl	build_reference_type
	mov	fp, r0
	b	.L23
.L15:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L156
.L1:
	add	sp, sp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L9:
	mov	r0, fp
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	bne	.L30
.L33:
	mov	r0, fp
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	beq	.L32
	mov	r0, r6
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	bne	.L23
.L32:
	mov	r0, fp
	bl	TYPE_PTR_TO_MEMBER_P
	cmp	r0, #0
	beq	.L35
	ldr	r0, [r7, #4]
	bl	null_ptr_cst_p
	cmp	r0, #0
	beq	.L35
.L47:
	mov	r6, fp
	b	.L23
.L41:
	mov	r0, fp
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L39
.L40:
	mov	r0, fp
	bl	TREE_CODE
	ldr	r10, .L160+12
	ldr	r3, [r10]
	cmp	r0, r3
	beq	.L157
.L43:
	mov	r0, fp
	bl	TYPE_PTR_P
	cmp	r0, #0
	beq	.L45
	ldr	r0, [r7, #4]
	bl	null_ptr_cst_p
	cmp	r0, #0
	bne	.L158
.L45:
	ldr	r0, [r7]
	bl	null_ptr_cst_p
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	TYPE_PTR_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	uses_template_parms
	cmp	r0, #0
	bne	.L1
.L85:
	mov	fp, r6
	b	.L23
.L17:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L159
.L4:
	mov	r0, fp
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L50
	mov	r0, r6
	bl	TYPE_PTROB_P
	cmp	r0, #0
	beq	.L50
	ldr	r3, .L160+16
	ldr	fp, [r3]
	b	.L23
.L20:
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+20
	ldr	r3, [r3]
	cmp	r0, r3
	beq	.L23
.L16:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L23
	b	.L1
.L13:
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	bne	.L26
.L29:
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	beq	.L15
	mov	r0, r6
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L15
.L152:
	ldr	r3, .L160+16
	ldr	r6, [r3]
	b	.L23
.L12:
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+20
	ldr	r3, [r3]
	cmp	r0, r3
	bne	.L1
	mov	r0, r6
	bl	TYPE_PTR_TO_MEMBER_P
	cmp	r0, #0
	beq	.L1
	mov	r0, fp
	bl	TREE_TYPE
	mov	r10, r0
	mov	r0, r6
	bl	TYPE_PTRMEM_CLASS_TYPE
	mov	r3, r0
	mov	r0, r10
	str	r3, [sp, #20]
	bl	IS_AGGR_TYPE
	cmp	r0, #0
	beq	.L1
	mov	r1, r10
	ldr	r0, [sp, #20]
	bl	DERIVED_FROM_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	bne	.L23
	mov	r0, r6
	bl	TYPE_PTRMEM_POINTED_TO_TYPE
	bl	is_complete
	cmp	r0, #0
	bne	.L23
	b	.L1
.L11:
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+20
	ldr	r3, [r3]
	cmp	r0, r3
	bne	.L1
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	bne	.L23
	mov	r0, fp
	bl	TREE_TYPE
	bl	TREE_CODE
	ldr	r3, .L160+24
	ldr	r3, [r3]
	cmp	r0, r3
	bne	.L1
	b	.L23
.L8:
	mov	r0, fp
	bl	promoted_arithmetic_type_p
	cmp	r0, #0
	bne	.L71
.L74:
	mov	r0, fp
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L73
	mov	r0, fp
	bl	TYPE_PTR_TO_MEMBER_P
	cmp	r0, #0
	beq	.L1
.L73:
	mov	r0, r6
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L23
	mov	r0, r6
	bl	TYPE_PTR_TO_MEMBER_P
	cmp	r0, #0
	bne	.L23
	b	.L1
.L7:
	mov	r0, fp
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	bne	.L23
	b	.L1
.L50:
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L1
	b	.L152
.L3:
	bl	gcc_unreachable
	b	.L23
.L155:
	mov	r0, fp
	bl	TREE_CODE
	mov	r10, r0
	mov	r0, r6
	bl	TREE_CODE
	cmp	r10, r0
	bne	.L76
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+28
	ldr	r3, [r3]
	cmp	r0, r3
	beq	.L81
	mov	r0, fp
	bl	TYPE_PTR_P
	cmp	r0, #0
	beq	.L82
	mov	r0, r6
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L81
.L82:
	mov	r0, fp
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	beq	.L80
	mov	r0, r6
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	bne	.L81
.L80:
	mov	r0, fp
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	bne	.L81
	mov	r0, fp
	bl	IS_AGGR_TYPE
	cmp	r0, #0
	bne	.L81
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+12
	ldr	r3, [r3]
	cmp	r0, r3
	bne	.L76
.L81:
	mov	r3, fp
	mov	r2, fp
	mov	r1, r5
	mov	r0, r4
	stm	sp, {r7, r8, r9}
	bl	build_builtin_candidate
	mov	r1, r5
	mov	r0, r4
	mov	r3, r6
	mov	r2, r6
	str	r9, [sp, #72]
	str	r8, [sp, #68]
	str	r7, [sp, #64]
	b	.L153
.L55:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L59
	b	.L1
.L52:
	mov	r0, fp
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L1
	mov	r0, r6
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	bne	.L59
	b	.L1
.L51:
	bl	gcc_unreachable
	b	.L59
.L56:
	mov	r0, fp
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	beq	.L63
	mov	r0, r6
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L59
.L63:
	mov	r0, fp
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	beq	.L62
	mov	r0, r6
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	beq	.L62
.L68:
	mov	r6, fp
	b	.L59
.L54:
	mov	r0, fp
	bl	TYPE_PTROB_P
	cmp	r0, #0
	beq	.L55
	mov	r0, r6
	bl	INTEGRAL_TYPE_P
	cmp	r0, #0
	beq	.L55
	ldr	r3, .L160+16
	ldr	r6, [r3]
	b	.L59
.L39:
	mov	r0, r6
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L23
	b	.L40
.L71:
	mov	r0, r6
	bl	promoted_arithmetic_type_p
	cmp	r0, #0
	bne	.L23
	b	.L74
.L30:
	mov	r0, r6
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	bne	.L23
	b	.L33
.L26:
	mov	r0, r6
	bl	TYPE_PTROB_P
	cmp	r0, #0
	bne	.L23
	b	.L29
.L159:
	mov	r0, r6
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L23
	b	.L4
.L156:
	mov	r0, r6
	bl	ARITHMETIC_TYPE_P
	cmp	r0, #0
	bne	.L23
	b	.L1
.L157:
	mov	r0, r6
	bl	TREE_CODE
	ldr	r3, [r10]
	cmp	r0, r3
	bne	.L43
	b	.L23
.L62:
	mov	r0, fp
	bl	TYPE_PTR_P
	cmp	r0, #0
	beq	.L65
	mov	r0, r6
	bl	TYPE_PTR_P
	cmp	r0, #0
	bne	.L68
.L65:
	mov	r0, fp
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	beq	.L67
	mov	r0, r6
	bl	TYPE_PTRMEM_P
	cmp	r0, #0
	bne	.L68
.L67:
	mov	r0, fp
	bl	TYPE_PTRMEMFUNC_P
	cmp	r0, #0
	bne	.L69
	mov	r0, fp
	bl	TREE_CODE
	ldr	r3, .L160+20
	ldr	r3, [r3]
	cmp	r0, r3
	bne	.L1
.L69:
	ldr	r0, [r7, #4]
	bl	null_ptr_cst_p
	cmp	r0, #0
	bne	.L68
	b	.L1
.L158:
	mov	r0, fp
	bl	uses_template_parms
	cmp	r0, #0
	beq	.L47
	b	.L45
.L161:
	.align	2
.L160:
	.word	integer_zero_node
	.word	integer_type_node
	.word	BOOLEAN_TYPE
	.word	ENUMERAL_TYPE
	.word	ptrdiff_type_node
	.word	POINTER_TYPE
	.word	FUNCTION_TYPE
	.word	REFERENCE_TYPE
	.size	add_builtin_candidate, .-add_builtin_candidate
	.comm	ptrdiff_type_node,4,4
	.comm	integer_zero_node,4,4
	.comm	integer_type_node,4,4
	.comm	REFERENCE_TYPE,4,4
	.comm	POINTER_TYPE,4,4
	.comm	FUNCTION_TYPE,4,4
	.comm	ENUMERAL_TYPE,4,4
	.comm	BOOLEAN_TYPE,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
