// File: /workspace/github_c_makefile_star2_O1/lucvoo[P]sparse-dev/parse.c
// Function: statement_list
static struct token * statement_list(struct token *token, struct statement_list **list)
{
	int seen_statement = 0;
	while (token_type(token) == TOKEN_IDENT &&
	       token->ident == &__label___ident)
		token = label_statement(token->next);
	for (;;) {
		struct statement * stmt;
		if (eof_token(token))
			break;
		if (match_op(token, '}'))
			break;
		if (match_ident(token, &_Static_assert_ident)) {
			token = parse_static_assert(token, NULL);
			continue;
		}
		if (lookup_type(token)) {
			if (seen_statement) {
				warning(token->pos, "mixing declarations and code");
				seen_statement = 0;
			}
			stmt = alloc_statement(token->pos, STMT_DECLARATION);
			token = external_declaration(token, &stmt->declaration, NULL);
		} else {
			seen_statement = Wdeclarationafterstatement;
			token = statement(token, &stmt);
		}
		add_statement(list, stmt);
	}
	return token;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movl (%rdi), %eax
andl $0x3f, %eax
cmpl $0x3, %eax
jne 0x1a3c8
leaq 0x4affd(%rip), %r13     # 0x65320
leaq 0x4aa5e(%rip), %rbp     # 0x64d88
leaq 0x2c15b(%rip), %r15     # 0x4648c
cmpq %r13, 0x10(%r14)
jne 0x1a3c8
movq 0x8(%r14), %r14
movq (%r14), %rdi
movl %edi, %eax
andl $0x3f, %eax
cmpl $0x3, %eax
jne 0x1a3a7
movl $0xc, %esi
callq 0x2b547
movq %rax, %r12
movq 0x10(%r14), %rsi
movq (%rbp), %rcx
movq %rax, %rdi
movl $0x8, %edx
callq 0x2c259
movq 0x4dbbb(%rip), %rdi     # 0x67f30
testq %rdi, %rdi
je 0x1a382
movq %r12, %rsi
callq 0x2285b
movq 0x8(%r14), %r14
movl (%r14), %ecx
andl $0x3f, %ecx
movb $0x1, %al
cmpl $0x12, %ecx
jne 0x1a39b
cmpl $0x2c, 0x10(%r14)
setne %al
testb %al, %al
jne 0x1a3a3
movq 0x8(%r14), %r14
testb %al, %al
je 0x1a33f
movq %r14, %rdi
movl $0x3b, %esi
movq %r15, %rdx
callq 0x195d7
movq %rax, %r14
movl (%rax), %eax
andl $0x3f, %eax
cmpl $0x3, %eax
je 0x1a331
leaq 0x6d211(%rip), %r13     # 0x875e0
leaq 0x4adba(%rip), %r15     # 0x65190
movq %rsp, %r12
xorl %ebp, %ebp
movb $0x1, %al
cmpq %r13, %r14
je 0x1a445
movq (%r14), %rcx
andl $0x3f, %ecx
cmpq $0x12, %rcx
jne 0x1a3f5
cmpl $0x7d, 0x10(%r14)
je 0x1a448
cmpl $0x3, %ecx
jne 0x1a41e
cmpq %r15, 0x10(%r14)
je 0x1a44e
cmpl $0x3, %ecx
jne 0x1a41e
movq 0x10(%r14), %rdi
movl $0x12, %esi
callq 0x2b511
testq %rax, %rax
je 0x1a41e
testb $0x2, 0x1(%rax)
jne 0x1a45b
leaq 0x47177(%rip), %rax     # 0x6159c
movl (%rax), %ebp
movq %r14, %rdi
movq %r12, %rsi
callq 0x1cabe
movq %rax, %r14
movq (%rsp), %rsi
movq %rbx, %rdi
callq 0x2285b
xorl %eax, %eax
jmp 0x1a448
movq %r13, %r14
testb %al, %al
je 0x1a3db
jmp 0x1a4a4
movq %r14, %rdi
callq 0x1be7d
movq %rax, %r14
jmp 0x1a441
testl %ebp, %ebp
je 0x1a470
movq (%r14), %rdi
leaq 0x2c006(%rip), %rsi     # 0x4646f
xorl %eax, %eax
callq 0x118b4
movq (%r14), %r15
xorl %ebp, %ebp
xorl %edi, %edi
callq 0x3008c
movl $0x1, (%rax)
movq %r15, 0x4(%rax)
movq %rax, (%rsp)
leaq 0x10(%rax), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x1a892
movq %rax, %r14
leaq 0x4acee(%rip), %r15     # 0x65190
jmp 0x1a435
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq