mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/hlsl: Return an error expression when a function is used as a variable.
This commit is contained in:
parent
c553c45f00
commit
e060b47330
Notes:
Henri Verbeet
2024-12-03 14:56:02 +01:00
Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1233
@ -9007,17 +9007,24 @@ primary_expr:
|
|||||||
struct hlsl_ir_load *load;
|
struct hlsl_ir_load *load;
|
||||||
struct hlsl_ir_var *var;
|
struct hlsl_ir_var *var;
|
||||||
|
|
||||||
if (!(var = hlsl_get_var(ctx->cur_scope, $1)))
|
if ((var = hlsl_get_var(ctx->cur_scope, $1)))
|
||||||
|
{
|
||||||
|
vkd3d_free($1);
|
||||||
|
|
||||||
|
if (!(load = hlsl_new_var_load(ctx, var, &@1)))
|
||||||
|
YYABORT;
|
||||||
|
if (!($$ = make_block(ctx, &load->node)))
|
||||||
|
YYABORT;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
hlsl_error(ctx, &@1, VKD3D_SHADER_ERROR_HLSL_NOT_DEFINED, "Variable \"%s\" is not defined.", $1);
|
hlsl_error(ctx, &@1, VKD3D_SHADER_ERROR_HLSL_NOT_DEFINED, "Variable \"%s\" is not defined.", $1);
|
||||||
vkd3d_free($1);
|
vkd3d_free($1);
|
||||||
YYABORT;
|
|
||||||
|
if (!($$ = make_empty_block(ctx)))
|
||||||
|
YYABORT;
|
||||||
|
$$->value = ctx->error_instr;
|
||||||
}
|
}
|
||||||
vkd3d_free($1);
|
|
||||||
if (!(load = hlsl_new_var_load(ctx, var, &@1)))
|
|
||||||
YYABORT;
|
|
||||||
if (!($$ = make_block(ctx, &load->node)))
|
|
||||||
YYABORT;
|
|
||||||
}
|
}
|
||||||
| '(' expr ')'
|
| '(' expr ')'
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user