// File: fondoger[P]C0-Compiler/src/error.cpp
// Function: printError(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
static void printError(std::string msg)
{
    std::stringstream buffer;
    buffer << source_filename << ":" << g_line_no << ":"
        << g_word_pos << ":" << msg << std::endl;
    buffer << g_line;
    for (unsigned int i = 0; i < g_word_pos; i++)
        buffer << " ";
    buffer << "^";
    // NOTE:
    // use explicit type conversion here to avoid
    // negative numbers!
    // it took me 2 hour to find this! :(
    for (int i = 0; i < (int)g_pos - (int)g_word_pos - 2; i++)
        buffer << "~";
    buffer << std::endl;
    cached_errors.push_back(buffer.str());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x1d8(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x3270
leaq -0x180(%rbp), %rdi
leaq 0x2fd08(%rip), %rsi     # 0x480e8
callq 0x32c0
movq %rax, -0x1d0(%rbp)
jmp 0x183ee
movq -0x1d0(%rbp), %rdi
leaq 0x1ce1e(%rip), %rsi     # 0x3521a
callq 0x3300
movq %rax, -0x1e0(%rbp)
jmp 0x1840a
movq -0x1e0(%rbp), %rdi
leaq 0x3330c(%rip), %rax     # 0x4b724
movl (%rax), %esi
callq 0x3410
movq %rax, -0x1e8(%rbp)
jmp 0x18428
movq -0x1e8(%rbp), %rdi
leaq 0x1cde4(%rip), %rsi     # 0x3521a
callq 0x3300
movq %rax, -0x1f0(%rbp)
jmp 0x18444
movq -0x1f0(%rbp), %rdi
leaq 0x332d6(%rip), %rax     # 0x4b728
movl (%rax), %esi
callq 0x3410
movq %rax, -0x1f8(%rbp)
jmp 0x18462
movq -0x1f8(%rbp), %rdi
leaq 0x1cdaa(%rip), %rsi     # 0x3521a
callq 0x3300
movq %rax, -0x200(%rbp)
jmp 0x1847e
movq -0x1d8(%rbp), %rsi
movq -0x200(%rbp), %rdi
callq 0x32c0
movq %rax, -0x208(%rbp)
jmp 0x1849a
movq -0x208(%rbp), %rdi
movq 0x2cb00(%rip), %rsi     # 0x44fa8
callq 0x3360
jmp 0x184af
leaq -0x180(%rbp), %rdi
leaq 0x33243(%rip), %rsi     # 0x4b700
callq 0x32c0
jmp 0x184c4
movl $0x0, -0x1a0(%rbp)
movl -0x1a0(%rbp), %eax
leaq 0x3324d(%rip), %rcx     # 0x4b728
cmpl (%rcx), %eax
jae 0x1851e
leaq -0x180(%rbp), %rdi
leaq 0x1d9bb(%rip), %rsi     # 0x35ea8
callq 0x3300
jmp 0x184f4
jmp 0x184f6
movl -0x1a0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a0(%rbp)
jmp 0x184ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x18602
leaq -0x180(%rbp), %rdi
leaq 0x1cd63(%rip), %rsi     # 0x3528f
callq 0x3300
jmp 0x18533
movl $0x0, -0x1a4(%rbp)
movl -0x1a4(%rbp), %eax
leaq 0x331d6(%rip), %rcx     # 0x4b720
movl (%rcx), %ecx
leaq 0x331d5(%rip), %rdx     # 0x4b728
subl (%rdx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x18584
leaq -0x180(%rbp), %rdi
leaq 0x1cd27(%rip), %rsi     # 0x35291
callq 0x3300
jmp 0x18571
jmp 0x18573
movl -0x1a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a4(%rbp)
jmp 0x1853d
leaq -0x180(%rbp), %rdi
movq 0x2ca16(%rip), %rsi     # 0x44fa8
callq 0x3360
jmp 0x18599
leaq -0x1c8(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x32f0
jmp 0x185ae
leaq 0x2dbdb(%rip), %rdi     # 0x46190
leaq -0x1c8(%rbp), %rsi
callq 0x197f0
jmp 0x185c3
leaq -0x1c8(%rbp), %rdi
callq 0x35e8
leaq -0x190(%rbp), %rdi
callq 0x35f0
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x35e8
leaq -0x190(%rbp), %rdi
callq 0x35f0
movq -0x198(%rbp), %rdi
callq 0x3560
nopw (%rax,%rax)