Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl.c:
struct hlsl_block *body, const struct vkd3d_shader_location *loc)
+{
- struct hlsl_ir_switch_case *c;
- struct hlsl_block block;
- if (!(c = hlsl_alloc(ctx, sizeof(*c))))
return NULL;
- if (value)
- {
hlsl_block_init(&block);
hlsl_block_add_block(&block, value);
c->value = evaluate_static_expression_as_uint(ctx, &block, loc);
hlsl_block_cleanup(&block);
Why do you create another block instead of directly using `value`?