From b8a1495106a8b70e9026b7798a5df2fb9737c55e Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Wed, 6 May 2015 15:56:17 +0200 Subject: [PATCH] draw: (trivial) fix out-of-bounds vector initialization Was off-by-one. llvm says inserting an element with an index higher than the number of elements yields undefined results. Previously such inserts were ignored but as of llvm revision 235854 the vector gets replaced with undef, causing failures. This fixes piglit gl-3.2-layered-rendering-gl-layer, as mentioned in https://llvm.org/bugs/show_bug.cgi?id=23424. Reviewed-by: Brian Paul Cc: mesa-stable@lists.freedesktop.org --- src/gallium/auxiliary/draw/draw_llvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 71506114dc3..b9e55af42c7 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -2048,7 +2048,7 @@ generate_mask_value(struct draw_gs_llvm_variant *variant, num_prims = lp_build_broadcast(gallivm, lp_build_vec_type(gallivm, mask_type), variant->num_prims); - for (i = 0; i <= gs_type.length; i++) { + for (i = 0; i < gs_type.length; i++) { LLVMValueRef idx = lp_build_const_int32(gallivm, i); mask_val = LLVMBuildInsertElement(builder, mask_val, idx, idx, ""); } -- 2.30.2