From: Bas Nieuwenhuizen Date: Mon, 10 Jun 2019 14:17:46 +0000 (+0200) Subject: radv: Prevent out of bound shift on 32-bit builds. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39c71e002561052d0596200b2d0ebdb8cc39d862;p=mesa.git radv: Prevent out of bound shift on 32-bit builds. uintptr_t is 32-bits then and shifting it by 32 bits results in undefined behavior IIRC. Fixes: b3c8de1c55c "radv: save all descriptor pointers into the trace BO" Reviewed-by: Samuel Pitoiset --- diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 58ba1039bb0..3faaf94eb99 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -584,8 +584,8 @@ radv_save_descriptors(struct radv_cmd_buffer *cmd_buffer, for_each_bit(i, descriptors_state->valid) { struct radv_descriptor_set *set = descriptors_state->sets[i]; - data[i * 2] = (uintptr_t)set; - data[i * 2 + 1] = (uintptr_t)set >> 32; + data[i * 2] = (uint64_t)(uintptr_t)set; + data[i * 2 + 1] = (uint64_t)(uintptr_t)set >> 32; } radv_emit_write_data_packet(cmd_buffer, va, MAX_SETS * 2, data);