-
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.