diff options
Diffstat (limited to 'src/glsl/nir/nir_live_variables.c')
-rw-r--r-- | src/glsl/nir/nir_live_variables.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/glsl/nir/nir_live_variables.c b/src/glsl/nir/nir_live_variables.c index 7402dc0877e..b57ca3a2780 100644 --- a/src/glsl/nir/nir_live_variables.c +++ b/src/glsl/nir/nir_live_variables.c @@ -26,6 +26,7 @@ #include "nir.h" #include "nir_worklist.h" +#include "c99_alloca.h" /* * Basic liveness analysis. This works only in SSA form. @@ -130,8 +131,8 @@ static bool propagate_across_edge(nir_block *pred, nir_block *succ, struct live_variables_state *state) { - BITSET_WORD live[state->bitset_words]; - memcpy(live, succ->live_in, sizeof live); + BITSET_WORD *live = alloca(state->bitset_words * sizeof *live); + memcpy(live, succ->live_in, state->bitset_words * sizeof *live); nir_foreach_instr(succ, instr) { if (instr->type != nir_instr_type_phi) |