// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/parse/infer.c
// Function: checksize
static void
checksize(Node *ctx, Type *a, Type *b)
{
	if (a->asize)
		a->asize = fold(a->asize, 1);
	if (b->asize)
		b->asize = fold(b->asize, 1);
	if (a->asize && exprop(a->asize) != Olit)
		lfatal(ctx->loc, "%s: array size is not constant near %s",
				tystr(a), ctxstr(ctx));
	if (b->asize && exprop(b->asize) != Olit)
		lfatal(ctx->loc, "%s: array size is not constant near %s",
				tystr(b), ctxstr(ctx));
	if (!a->asize)
		a->asize = b->asize;
	else if (!b->asize)
		b->asize = a->asize;
	else if (a->asize && b->asize)
		if (!litvaleq(a->asize->expr.args[0], b->asize->expr.args[0]))
			lfatal(ctx->loc, "array size of %s does not match %s near %s",
				tystr(a), tystr(b), ctxstr(ctx));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x298e5
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rdi
movl $0x1, %esi
callq 0x1f390
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x29916
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rdi
movl $0x1, %esi
callq 0x1f390
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x29973
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0x2f210
cmpl $0x35, %eax
je 0x29973
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x38a10
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x27be0
movq -0x28(%rbp), %rdx
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq (%rax), %rdi
leaq 0x286cb(%rip), %rsi     # 0x52037
movb $0x0, %al
callq 0x1e110
movq -0x18(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x299d0
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0x2f210
cmpl $0x35, %eax
je 0x299d0
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x38a10
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x27be0
movq -0x38(%rbp), %rdx
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq (%rax), %rdi
leaq 0x2866e(%rip), %rsi     # 0x52037
movb $0x0, %al
callq 0x1e110
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x299f9
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x88(%rax)
jmp 0x29ac1
movq -0x18(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x29a22
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x88(%rax)
jmp 0x29abf
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x29abd
movq -0x18(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x29abd
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x50(%rax), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x50(%rax), %rax
movq (%rax), %rsi
callq 0x303f0
cmpl $0x0, %eax
jne 0x29abb
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
callq 0x38a10
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
callq 0x38a10
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x27be0
movq -0x50(%rbp), %rdx
movq -0x48(%rbp), %rcx
movq %rax, %r8
movq -0x40(%rbp), %rax
movq (%rax), %rdi
leaq 0x285aa(%rip), %rsi     # 0x5205e
movb $0x0, %al
callq 0x1e110
jmp 0x29abd
jmp 0x29abf
jmp 0x29ac1
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)