Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl_codegen.c:
hlsl_error(ctx, &var->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_RESERVATION,"Overlapping register() reservations on 'c%u'.", reg_idx + i);}record_allocation(ctx, &allocator, reg_idx + i, VKD3DSP_WRITEMASK_ALL, 1, UINT_MAX);}var->regs[HLSL_REGSET_NUMERIC].id = reg_idx;var->regs[HLSL_REGSET_NUMERIC].allocation_size = reg_size / 4;var->regs[HLSL_REGSET_NUMERIC].allocated = true;}else{var->regs[HLSL_REGSET_NUMERIC] = allocate_numeric_registers_for_type(ctx, &allocator,1, UINT_MAX, var->data_type);}
What about types other than 'c'? I know 'i' and 'b' do something that we don't implement [and should maybe have a hlsl_fixme() for]; what about invalid types?