Module: vkd3d Branch: master Commit: 0238f60d8b53e78cb30e1ab9f6ee9255c4905528 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=0238f60d8b53e78cb30e1ab9...
Author: Zebediah Figura zfigura@codeweavers.com Date: Sun May 16 12:47:53 2021 -0500
vkd3d-shader: Sanity-check the offset data type in hlsl_reg_from_deref().
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d-shader/hlsl_codegen.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index 7dd919b..10bf80b 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -1171,6 +1171,11 @@ static struct hlsl_reg hlsl_reg_from_deref(const struct hlsl_deref *deref, const struct hlsl_reg ret = {0}; unsigned int offset = 0;
+ /* We should always have generated a cast to UINT. */ + if (offset_node) + assert(offset_node->data_type->type == HLSL_CLASS_SCALAR + && offset_node->data_type->base_type == HLSL_TYPE_UINT); + if (offset_node && offset_node->type != HLSL_IR_CONSTANT) { FIXME("Dereference with non-constant offset of type %s.\n", hlsl_node_type_to_string(offset_node->type));