[Mesa-dev] [PATCH] nir: Fix uninitialized use of 'replacement'.

Kenneth Graunke kenneth at whitecape.org
Tue Jul 19 19:25:01 UTC 2016


For intrinsics we don't care about, just skip to the next loop iteration
and process the next instruction.  We don't want to execute the rest of
the code.

This was a bug in commit cdfc05ea6e8c87876cdbf588aa8e03d70f3da4bb.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/compiler/nir/nir_lower_io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c
index 71d2432..189370d 100644
--- a/src/compiler/nir/nir_lower_io.c
+++ b/src/compiler/nir/nir_lower_io.c
@@ -352,41 +352,41 @@ nir_lower_io_block(nir_block *block,
 
       case nir_intrinsic_store_var:
          replacement = lower_store(intrin, state, vertex_index, offset);
          break;
 
       case nir_intrinsic_var_atomic_add:
       case nir_intrinsic_var_atomic_imin:
       case nir_intrinsic_var_atomic_umin:
       case nir_intrinsic_var_atomic_imax:
       case nir_intrinsic_var_atomic_umax:
       case nir_intrinsic_var_atomic_and:
       case nir_intrinsic_var_atomic_or:
       case nir_intrinsic_var_atomic_xor:
       case nir_intrinsic_var_atomic_exchange:
       case nir_intrinsic_var_atomic_comp_swap:
          assert(vertex_index == NULL);
          replacement = lower_atomic(intrin, state, offset);
          break;
 
       default:
-         break;
+         continue;
       }
 
       if (nir_intrinsic_infos[intrin->intrinsic].has_dest) {
          if (intrin->dest.is_ssa) {
             nir_ssa_dest_init(&replacement->instr, &replacement->dest,
                               intrin->dest.ssa.num_components,
                               intrin->dest.ssa.bit_size, NULL);
             nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
                                      nir_src_for_ssa(&replacement->dest.ssa));
          } else {
             nir_dest_copy(&replacement->dest, &intrin->dest, state->mem_ctx);
          }
       }
 
       nir_instr_insert_before(&intrin->instr, &replacement->instr);
       nir_instr_remove(&intrin->instr);
    }
 
    return true;
 }
-- 
2.9.0



More information about the mesa-dev mailing list