vkd3d-shader/d3d-asm: Handle INT_MIN in shader_print_int_literal().

This commit is contained in:
Elizabeth Figura
2025-06-23 20:11:24 -05:00
committed by Henri Verbeet
parent c2a01fff1e
commit 5452e79a19
Notes: Henri Verbeet 2025-06-24 16:33:07 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1596

View File

@@ -590,9 +590,10 @@ static void shader_print_double_literal(struct vkd3d_d3d_asm_compiler *compiler,
static void shader_print_int_literal(struct vkd3d_d3d_asm_compiler *compiler, static void shader_print_int_literal(struct vkd3d_d3d_asm_compiler *compiler,
const char *prefix, int i, const char *suffix) const char *prefix, int i, const char *suffix)
{ {
/* Note that we need to handle INT_MIN here as well. */
if (i < 0) if (i < 0)
vkd3d_string_buffer_printf(&compiler->buffer, "%s-%s%d%s%s", vkd3d_string_buffer_printf(&compiler->buffer, "%s-%s%u%s%s",
prefix, compiler->colours.literal, -i, compiler->colours.reset, suffix); prefix, compiler->colours.literal, -(unsigned int)i, compiler->colours.reset, suffix);
else else
vkd3d_string_buffer_printf(&compiler->buffer, "%s%s%d%s%s", vkd3d_string_buffer_printf(&compiler->buffer, "%s%s%d%s%s",
prefix, compiler->colours.literal, i, compiler->colours.reset, suffix); prefix, compiler->colours.literal, i, compiler->colours.reset, suffix);