diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2020-02-18 15:31:37 -0800 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-02-19 19:07:34 +0000 |
commit | 58bdc1c748f2922b3970c3b3a41d1b0977f07886 (patch) | |
tree | 2ddf55b6a4893f9f7762a912ebf6a530eb452d5b | |
parent | 912ee82521ec0507a00dd108b28bf4d864ce6d95 (diff) | |
download | mesa-58bdc1c748f2922b3970c3b3a41d1b0977f07886.tar.gz |
nir/search: Use larger type to hold linearized index
"index" is an offset into a linearized 3-dimensional array. Starting
with fbd5359a0a6, the 3-dimensional array can have 43 elements in each
dimension. 43**3 = 79507, and that will overflow the uint16_t.
See also the discussion in MR !3765.
Fixes: fbd5359a0a6 ("nir/algebraic: Rearrange bcsel sequences generated by nir_opt_peephole_select")
Suggested-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3871>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3871>
-rw-r--r-- | src/compiler/nir/nir_search.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_search.c b/src/compiler/nir/nir_search.c index 458a4eeb1ce..7abb023faf5 100644 --- a/src/compiler/nir/nir_search.c +++ b/src/compiler/nir/nir_search.c @@ -789,7 +789,7 @@ nir_algebraic_automaton(nir_instr *instr, struct util_dynarray *states, * itertools.product(), which was used to emit the transition * table. */ - uint16_t index = 0; + unsigned index = 0; for (unsigned i = 0; i < nir_op_infos[op].num_inputs; i++) { index *= tbl->num_filtered_states; index += tbl->filter[*util_dynarray_element(states, uint16_t, |