Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 58706474 by Francisco Casas at 2025-04-16T15:58:40+02:00 vkd3d-shader/hlsl: Make struct_declaration_without_vars return void.
- - - - - 128688a5 by Francisco Casas at 2025-04-16T16:00:18+02:00 vkd3d-shader/hlsl: Avoid leaking declaration_statement blocks.
- - - - - f3ba7a84 by Francisco Casas at 2025-04-16T16:01:35+02:00 vkd3d-shader/hlsl: Avoid leaking blocks on YYABORT.
Currently program errors might result on instructions that use ctx->error_instr as src. In case we hit YYABORT while parsing another part of the HLSL source, we have to make sure that the block that contains the instruction is properly cleaned up, or we might hit the
vkd3d:590273:err:hlsl_free_instr Failed assertion: list_empty(&node->uses)
assertion when hlsl_ctx_cleanup() is called after the YYABORT.
Consider the following shader:
float4 main() : sv_target { // Statement A int p = foo; // initializer argument is ERROR. // Statement B undeclared_fun(); // triggers YYABORT. }
Statement A will src the ctx->error_instr because of the undeclared identifier and Statement B will trigger an YYABORT because of the undeclared function.
- - - - - ff5f9cbc by Francisco Casas at 2025-04-16T16:21:45+02:00 vkd3d-shader/hlsl: Add parse_variable_def destructors to the parser.
- - - - - 77941b13 by Francisco Casas at 2025-04-16T16:21:51+02:00 vkd3d-shader/hlsl: Add switch_case destructors to the parser.
- - - - - 9378d51b by Francisco Casas at 2025-04-16T16:22:42+02:00 vkd3d-shader/hlsl: Remove the unnecessary "instr" field from the parser %union.
- - - - -
1 changed file:
- libs/vkd3d-shader/hlsl.y
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/922cb47a4b592dfa194a8eac33f51...