Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl.y:
if (!hlsl_clone_block(ctx, &block, cond))
return false;
if (!append_conditional_jump(ctx, &block, HLSL_IR_JUMP_CONTINUE))
{
hlsl_block_cleanup(&block);
return false;
}
list_move_before(&instr->entry, &block.instrs);
list_remove(&instr->entry);
hlsl_free_instr(instr);
}
else if (type == LOOP_FOR)
{
if (!hlsl_clone_block(ctx, &block, iter))
return false;
list_move_before(&instr->entry, &block.instrs);
I wonder whether those `list_*()` calls should also be masked behind a layer of `hlsl_block_*()` helpers, but that doesn't need to happen in this MR.