nolanderc / glsl_analyzer

Language server for GLSL (autocomplete, goto-definition, formatter, and more)
GNU General Public License v3.0
171 stars 4 forks source link

Parser crash in a `switch` statement #7

Closed automaticp closed 10 months ago

automaticp commented 10 months ago

glsl_analyzer v1.0.8 glsl_analyzer-vscode v1.2.2

Hi, here's another snippet that crashes the parser:

#version 430 core

void main() {
    int i = 3;

    switch (i) {
        case 3:
            break;
        default:
            break;
    }

}

The output log:

[Error - 5:24:37 PM] Server process exited with signal SIGABRT.
[Info  - 5:24:37 PM] Connection to server got closed. Server will restart.
true
debug: method: 'initialize'
debug: method: 'initialized'
debug: method: 'textDocument/didOpen'
debug: opened: file:///home/automatic/projects/josh3d/src/shaders/test_switch.glsl : glsl : 100 : 146
debug: method: 'textDocument/hover'
debug: hover: 5:13 file:///home/automatic/projects/josh3d/src/shaders/test_switch.glsl
debug: hover word: 'i'
thread 1757103 panic: ran out of fuel
/opt/hostedtoolcache/zig/0.12.0-dev.790/x64/lib/std/debug.zig:373:22: 0x2ae14c in panicExtra__anon_18660 (glsl_analyzer)
/opt/hostedtoolcache/zig/0.12.0-dev.790/x64/lib/std/debug.zig:348:15: 0x2ada85 in panic__anon_17344 (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:0:0: 0x282c58 in statement (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:707:22: 0x27b078 in block (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:809:18: 0x28291e in statement (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:707:22: 0x27b078 in block (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:652:26: 0x236c99 in parseTree (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/Document.zig:133:38: 0x23bcdc in completionsAtPosition (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/main.zig:602:34: 0x23ee25 in textDocument/hover (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/main.zig:273:45: 0x24b62a in dispatchRequest (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/main.zig:247:59: 0x251958 in main (glsl_analyzer)
/opt/hostedtoolcache/zig/0.12.0-dev.790/x64/lib/std/start.zig:486:37: 0x253eba in main (glsl_analyzer)
/opt/hostedtoolcache/zig/0.12.0-dev.790/x64/lib/libc/musl/src/env/__libc_start_main.c:95:7: 0x2b0ae2 in libc_start_main_stage2 (/opt/hostedtoolcache/zig/0.12.0-dev.790/x64/lib/libc/musl/src/env/__libc_start_main.c)
Unwind error at address `exe:0x2b0ae2` (error.AddressOutOfRange), trace may be incomplete

[Error - 5:24:38 PM] Server process exited with signal SIGABRT.
[Error - 5:24:38 PM] The glsl_analyzer server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.