// File: /workspace/github_c_makefile_star2_O0/sharmaeklavya2[P]cerplag/error.c
// Function: print_error
void print_error(const char* category, int type, int err_num, int line, int col,
    const char* lexeme, const char* err_code, const char* err_msg)
{
    if(!print_error_req)
        return;
    if(error_stream == NULL)
        error_stream = stderr;

    const char* type_str;
    if(type == ERROR) {
        type_str = "error";
        error_count++;
    }
    else {
        type_str = "warning";
        warning_count++;
    }

    if(category != NULL)
        fprintf(error_stream, "%s_", category);
    fprintf(error_stream, "%s", type_str);
    if(err_num >= 0)
        fprintf(error_stream, "_%02d", err_num);
    fprintf(error_stream, ": ");

    if(line > 0)
    {
        fprintf(error_stream, "line %2d", line);
        if(col > 0)
            fprintf(error_stream, ", col %2d", col);
        fprintf(error_stream, ": ");
    }

    if(lexeme != NULL)
        fprintf(error_stream, "\'%s\'", lexeme);

    if(err_code != NULL || err_msg != NULL)
        fprintf(error_stream, "\n");
    if(err_code != NULL)
        fprintf(error_stream, "%s: ", err_code);
    if(err_msg != NULL)
        fprintf(error_stream, "%s", err_msg);

    fprintf(error_stream, "\n\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq %r9, -0x20(%rbp)
testb $0x1, 0xf074(%rip)      # 0x1aaf0
jne 0xba83
jmp 0xbc2f
cmpq $0x0, 0x14345(%rip)     # 0x1fdd0
jne 0xba9e
movq 0xe564(%rip), %rax      # 0x19ff8
movq (%rax), %rax
movq %rax, 0x14332(%rip)     # 0x1fdd0
cmpl $0x0, -0xc(%rbp)
jne 0xbac0
leaq 0x8781(%rip), %rax      # 0x1422c
movq %rax, -0x28(%rbp)
movl 0x14323(%rip), %eax     # 0x1fdd8
addl $0x1, %eax
movl %eax, 0x1431a(%rip)     # 0x1fdd8
jmp 0xbada
leaq 0x963e(%rip), %rax      # 0x15105
movq %rax, -0x28(%rbp)
movl 0x1430b(%rip), %eax     # 0x1fddc
addl $0x1, %eax
movl %eax, 0x14302(%rip)     # 0x1fddc
cmpq $0x0, -0x8(%rbp)
je 0xbafa
movq 0x142e8(%rip), %rdi     # 0x1fdd0
movq -0x8(%rbp), %rdx
leaq 0x961a(%rip), %rsi      # 0x1510d
movb $0x0, %al
callq 0x3120
movq 0x142cf(%rip), %rdi     # 0x1fdd0
movq -0x28(%rbp), %rdx
leaq 0xa18c(%rip), %rsi      # 0x15c98
movb $0x0, %al
callq 0x3120
cmpl $0x0, -0x10(%rbp)
jl 0xbb31
movq 0x142b0(%rip), %rdi     # 0x1fdd0
movl -0x10(%rbp), %edx
leaq 0x95e7(%rip), %rsi      # 0x15111
movb $0x0, %al
callq 0x3120
movq 0x14298(%rip), %rdi     # 0x1fdd0
leaq 0x84cd(%rip), %rsi      # 0x1400c
movb $0x0, %al
callq 0x3120
cmpl $0x0, -0x14(%rbp)
jle 0xbb97
movq 0x1427d(%rip), %rdi     # 0x1fdd0
movl -0x14(%rbp), %edx
leaq 0x95ba(%rip), %rsi      # 0x15117
movb $0x0, %al
callq 0x3120
cmpl $0x0, -0x18(%rbp)
jle 0xbb82
movq 0x1425f(%rip), %rdi     # 0x1fdd0
movl -0x18(%rbp), %edx
leaq 0x95a5(%rip), %rsi      # 0x15120
movb $0x0, %al
callq 0x3120
movq 0x14247(%rip), %rdi     # 0x1fdd0
leaq 0x847c(%rip), %rsi      # 0x1400c
movb $0x0, %al
callq 0x3120
cmpq $0x0, -0x20(%rbp)
je 0xbbb7
movq 0x1422b(%rip), %rdi     # 0x1fdd0
movq -0x20(%rbp), %rdx
leaq 0x9c3d(%rip), %rsi      # 0x157ed
movb $0x0, %al
callq 0x3120
cmpq $0x0, 0x10(%rbp)
jne 0xbbc5
cmpq $0x0, 0x18(%rbp)
je 0xbbda
movq 0x14204(%rip), %rdi     # 0x1fdd0
leaq 0x9558(%rip), %rsi      # 0x1512b
movb $0x0, %al
callq 0x3120
cmpq $0x0, 0x10(%rbp)
je 0xbbfa
movq 0x141e8(%rip), %rdi     # 0x1fdd0
movq 0x10(%rbp), %rdx
leaq 0x8e66(%rip), %rsi      # 0x14a59
movb $0x0, %al
callq 0x3120
cmpq $0x0, 0x18(%rbp)
je 0xbc1a
movq 0x141c8(%rip), %rdi     # 0x1fdd0
movq 0x18(%rbp), %rdx
leaq 0xa085(%rip), %rsi      # 0x15c98
movb $0x0, %al
callq 0x3120
movq 0x141af(%rip), %rdi     # 0x1fdd0
leaq 0x9502(%rip), %rsi      # 0x1512a
movb $0x0, %al
callq 0x3120
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop