// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/preprocessor/gen.c
// Function: gen_warn
static void _gen_warn(
	PPGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == PP_NODE_DIRECTIVE_WARN);
	assert(node->nchilds == 0);

	const char *content = node->token->content;
	int len = node->token->len;

	char cmd[] = "#warn";
	ResizableString temp;
	rstr_init(&temp);
	int idx = sizeof(cmd);

	#define	_GET_CHAR(i) ((i) >= len ? -1 : content[(i)])

	while (isspace(_GET_CHAR(idx))) {
		idx++;
	}

	while (_GET_CHAR(idx) != -1) {
		rstr_append_with_char(&temp, _GET_CHAR(idx));
		idx++;
	}

	fprintf(stdout, "%s\n", RSTR_CSTR(&temp));

	rstr_free(&temp);

	#undef	_GET_CHAR
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x3f0c9
jmp 0x3f0e8
leaq 0xea91(%rip), %rdi      # 0x4db61
leaq 0xfe1e(%rip), %rsi      # 0x4eef5
movl $0x334, %edx            # imm = 0x334
leaq 0x10882(%rip), %rcx     # 0x4f965
callq 0xa0b0
cmpq $0x0, -0x10(%rbp)
je 0x3f0f1
jmp 0x3f110
leaq 0xbf8f(%rip), %rdi      # 0x4b087
leaq 0xfdf6(%rip), %rsi      # 0x4eef5
movl $0x335, %edx            # imm = 0x335
leaq 0x1085a(%rip), %rcx     # 0x4f965
callq 0xa0b0
movq -0x10(%rbp), %rax
cmpl $0x20b, (%rax)          # imm = 0x20B
jne 0x3f11e
jmp 0x3f13d
leaq 0x10876(%rip), %rdi     # 0x4f99b
leaq 0xfdc9(%rip), %rsi      # 0x4eef5
movl $0x336, %edx            # imm = 0x336
leaq 0x1082d(%rip), %rcx     # 0x4f965
callq 0xa0b0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jne 0x3f149
jmp 0x3f168
leaq 0x107fc(%rip), %rdi     # 0x4f94c
leaq 0xfd9e(%rip), %rsi      # 0x4eef5
movl $0x337, %edx            # imm = 0x337
leaq 0x10802(%rip), %rcx     # 0x4f965
callq 0xa0b0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1c(%rbp)
movl 0x10834(%rip), %eax     # 0x4f9c0
movl %eax, -0x22(%rbp)
movw 0x1082e(%rip), %ax      # 0x4f9c4
movw %ax, -0x1e(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xfca0
movl $0x6, -0x3c(%rbp)
callq 0xa1a0
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jl 0x3f1c8
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x4c(%rbp)
jmp 0x3f1d7
movq -0x18(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x4c(%rbp)
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x3f1fa
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3f1aa
jmp 0x3f1fc
movl -0x3c(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jl 0x3f20e
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x50(%rbp)
jmp 0x3f21d
movq -0x18(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl $-0x1, %eax
je 0x3f260
movl -0x3c(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jl 0x3f237
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x54(%rbp)
jmp 0x3f246
movq -0x18(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
leaq -0x38(%rbp), %rdi
movsbl %al, %esi
callq 0xfeb0
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3f1fc
movq 0x18d71(%rip), %rax     # 0x57fd8
movq (%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x3f282
leaq 0x860b(%rip), %rax      # 0x47887
movq %rax, -0x68(%rbp)
jmp 0x3f28a
movq -0x30(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x72a8(%rip), %rsi      # 0x46541
movb $0x0, %al
callq 0xa100
leaq -0x38(%rbp), %rdi
callq 0x10320
addq $0x70, %rsp
popq %rbp
retq
nop