[Mesa-dev] [PATCH] draw: (trivial) fix out-of-bounds vector initialization
Brian Paul
brianp at vmware.com
Wed May 6 07:26:50 PDT 2015
On 05/06/2015 08:05 AM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> 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.
>
> Cc: mesa-stable at 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 7150611..b9e55af 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, "");
> }
>
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list