Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/ir.c:
keep = shader_dst_param_io_normalise(&ins->declaration.register_semantic.reg, true,normaliser);break;case VKD3DSIH_HS_CONTROL_POINT_PHASE:case VKD3DSIH_HS_FORK_PHASE:case VKD3DSIH_HS_JOIN_PHASE:normaliser->phase = ins->handler_idx;memset(normaliser->input_dcl_params, 0, sizeof(normaliser->input_dcl_params));memset(normaliser->output_dcl_params, 0, sizeof(normaliser->output_dcl_params));memset(normaliser->pc_dcl_params, 0, sizeof(normaliser->pc_dcl_params));break;default:if (shader_instruction_is_dcl(ins))break;for (i = 0; i < ins->dst_count; ++i)shader_dst_param_io_normalise((struct vkd3d_shader_dst_param *)&ins->dst[i], false, normaliser);
I don't like casting away `const` too much. What is the reason why `dst` is a pointer to `const` in the first pace? Given that it seems that we want to modify instructions, maybe it makes sense to remove `const` from the `struct vkd3d_shader_instruction`?
The same happens a couple of lines below.