Mesa (master): st_glsl_to_tgsi: don' t try and pass 32-bit values to get_deref_offsets

Dave Airlie airlied at kemper.freedesktop.org
Mon Jun 12 23:30:45 UTC 2017


Module: Mesa
Branch: master
Commit: 8ec4975cd83365c791a1852a6515ed5d4ade2daf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ec4975cd83365c791a1852a6515ed5d4ade2daf

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Jun 13 05:33:19 2017 +1000

st_glsl_to_tgsi: don't try and pass 32-bit values to get_deref_offsets

Just use a temporary 16-bit index.

This fixes coverity issue, pointed to me by Ilia.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index c5d2e0fcd2..798831613f 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -3776,10 +3776,11 @@ glsl_to_tgsi_visitor::visit_image_intrinsic(ir_call *ir)
 
    st_src_reg reladdr;
    st_src_reg image(PROGRAM_IMAGE, 0, GLSL_TYPE_UINT);
-
+   uint16_t index;
    get_deref_offsets(img, &sampler_array_size, &sampler_base,
-                     (uint16_t*)&image.index, &reladdr, true);
+                     &index, &reladdr, true);
 
+   image.index = index;
    if (reladdr.file != PROGRAM_UNDEFINED) {
       image.reladdr = ralloc(mem_ctx, st_src_reg);
       *image.reladdr = reladdr;
@@ -4391,9 +4392,11 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
 
    st_src_reg sampler(PROGRAM_SAMPLER, 0, GLSL_TYPE_UINT);
 
+   uint16_t index;
    get_deref_offsets(ir->sampler, &sampler_array_size, &sampler_base,
-                     (uint16_t *)&sampler.index, &reladdr, true);
+                     &index, &reladdr, true);
 
+   sampler.index = index;
    if (reladdr.file != PROGRAM_UNDEFINED) {
       sampler.reladdr = ralloc(mem_ctx, st_src_reg);
       *sampler.reladdr = reladdr;




More information about the mesa-commit mailing list