Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/ir.c:
if (!(breakable_cf_info = cf_flattener_find_innermost_breakable_cf_construct(flattener))){FIXME("Unhandled break instruction.\n");return VKD3D_ERROR_INVALID_SHADER;}if (breakable_cf_info->current_block == VKD3D_BLOCK_LOOP){cf_flattener_emit_unconditional_branch(flattener, breakable_cf_info->u.loop.merge_block_id);}else if (breakable_cf_info->current_block == VKD3D_BLOCK_SWITCH){/* The current case block may have already been ended by an* unconditional continue instruction. */if (breakable_cf_info->inside_block)
I don't think this can happen any more, after the `remove_dead_code()` pass. I added an `assert(breakable_cf_info->inside_block);` at line 1865 and it never hit on my collection of shaders.