Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
- if ((pointee_type = src->type->u.pointer.type) != type)
- {
WARN("Type mismatch, type %u width %u vs type %u width %u.\n", type->class,
type->u.width, pointee_type->class, pointee_type->u.width);
vkd3d_shader_parser_warning(&sm6->p, VKD3D_SHADER_WARNING_DXIL_TYPE_MISMATCH,
"Type mismatch in GEP operation arguments.");
- }
- addr_space = src->type->u.pointer.addr_space;
- if (record->operand_count > operand_idx + 2)
- {
FIXME("Multiple element indices are not implemented.\n");
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND,
"Multi-dimensional addressing in GEP instructions is not supported.");
return;
- }
I'm a bit confused here. You expect two back references or one forward reference? From the loop below I'd say two back references, but you don't seem to be validating this, right?