Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parser error handling #1

Open
weyrick opened this issue Feb 15, 2013 · 0 comments
Open

parser error handling #1

weyrick opened this issue Feb 15, 2013 · 0 comments
Assignees
Labels

Comments

@weyrick
Copy link
Owner

weyrick commented Feb 15, 2013

right now we don't clean up orphan nodes living in the parser stack upon parse error. the AST can currently only be cleaned up properly once the full source has been accepted (by deleting the top level statement list).

right now, upon parse error we're leaking the nodes we've already created to that point, and it's causing an LLVM assertion in some cases. need to investigate the Right Way to do this.

@ghost ghost assigned weyrick Feb 15, 2013
hopeseekr added a commit to hopeseekr-contribs/corvus that referenced this issue Sep 28, 2020
It still instantly segfaults with:

    Process 3464178 launched: '/code/contribs/corvus/build/frontend/corvus' (x86_64)
    Process 3464178 stopped
    * thread weyrick#1, name = 'corvus', stop reason = signal SIGSEGV: invalid address (fault address: 0x8)
        frame #0: 0x00007ffff7e96868 libcorvus.so`llvm::MemoryBuffer::getBufferStart() const + 12
    libcorvus.so`llvm::MemoryBuffer::getBufferStart:
    ->  0x7ffff7e96868 <+12>: movq   0x8(%rax), %rax
        0x7ffff7e9686c <+16>: popq   %rbp
        0x7ffff7e9686d <+17>: retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant