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?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/471#note_52558