From f7d1460418f11c0209d099ddc552d126a68ba6e4 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 29 Oct 2020 13:06:43 +1000 Subject: [PATCH] gallivm: zero init the temporary register storage. Due to flow control we can end up with random values in here having side effects. This fixes a crash in gtk4-demo. Fixes: 44a6b0107b37 ("gallivm: add nir->llvm translation (v2)") Reviewed-by: Roland Scheidegger Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_nir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index a8988f6b173..23e57809385 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -2215,8 +2215,8 @@ bool lp_build_nir_llvm( nir_foreach_register(reg, &func->impl->registers) { LLVMTypeRef type = get_register_type(bld_base, reg); - LLVMValueRef reg_alloc = lp_build_alloca_undef(bld_base->base.gallivm, - type, "reg"); + LLVMValueRef reg_alloc = lp_build_alloca(bld_base->base.gallivm, + type, "reg"); _mesa_hash_table_insert(bld_base->regs, reg, reg_alloc); } nir_index_ssa_defs(func->impl);