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 the binary expression with the `&&` operator #6

Closed automaticp closed 10 months ago

automaticp commented 10 months ago

glsl_analyzer v1.0.8 glsl_analyzer-vscode v1.2.2

Hi, parser seems to crash in this small snippet:

#version 430 core

void main() {
    true && true;
}

Seems to happen around && independent of the operand expression type. || is fine, but maybe other operators are affected too.

Here's the output log:

[Error - 5:00:39 PM] Server process exited with signal SIGABRT.
[Info  - 5:00:39 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/test2.glsl : glsl : 141 : 53
debug: method: 'textDocument/hover'
debug: hover: 3:4 file:///home/automatic/projects/josh3d/src/shaders/test2.glsl
debug: hover word: 'true'
thread 1755343 panic: reached unreachable code
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:0:0: 0x23604b in advance (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:1089:22: 0x2a8743 in postfixExpressionOpt (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:1019:48: 0x2a2b92 in infixExpressionOptImpl (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:978:34: 0x28fb64 in constantExpressionOpt (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:914:31: 0x2a08fd in assignmentExpressionOpt (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:886:33: 0x28fec2 in expressionOpt (glsl_analyzer)
/home/runner/work/glsl_analyzer/glsl_analyzer/src/parse.zig:836:35: 0x282b02 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:00:40 PM] Server process exited with signal SIGABRT.
[Error - 5:00:40 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.
nolanderc commented 10 months ago

Thanks, I seem to have confused % and & when copy-pasting :sweat_smile: