From: Nicolai Hähnle Date: Sat, 30 Apr 2016 02:56:25 +0000 (-0500) Subject: gallium: fix various undefined left shifts into sign bit X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=62b7958cd0ec03ff1e15144f0104728458621d1d;p=mesa.git gallium: fix various undefined left shifts into sign bit Funnily enough, some of these were turned into a compile-time error by gcc with -fsanitize=undefined ("initializer is not a constant"). Reviewed-by: Brian Paul Reviewed-by: Michel Dänzer Reviewed-by: Marek Olšák --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.c b/src/gallium/auxiliary/tgsi/tgsi_ureg.c index 021b81f3874..43b8bb10f1c 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_ureg.c +++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.c @@ -1735,7 +1735,7 @@ static void emit_decls( struct ureg_program *ureg ) if (ureg->processor == PIPE_SHADER_VERTEX) { for (i = 0; i < PIPE_MAX_ATTRIBS; i++) { - if (ureg->vs_inputs[i/32] & (1 << (i%32))) { + if (ureg->vs_inputs[i/32] & (1u << (i%32))) { emit_decl_range( ureg, TGSI_FILE_INPUT, i, 1 ); } } diff --git a/src/gallium/auxiliary/util/u_pack_color.h b/src/gallium/auxiliary/util/u_pack_color.h index b882502b7ba..f9f41609b44 100644 --- a/src/gallium/auxiliary/util/u_pack_color.h +++ b/src/gallium/auxiliary/util/u_pack_color.h @@ -367,7 +367,7 @@ util_pack_color(const float rgba[4], enum pipe_format format, union util_color * return; case PIPE_FORMAT_BGRX8888_UNORM: { - uc->ui[0] = (0xff << 24) | (r << 16) | (g << 8) | b; + uc->ui[0] = (0xffu << 24) | (r << 16) | (g << 8) | b; } return; case PIPE_FORMAT_ARGB8888_UNORM: diff --git a/src/gallium/auxiliary/util/u_pstipple.c b/src/gallium/auxiliary/util/u_pstipple.c index 3ae8923f953..f6ea535c413 100644 --- a/src/gallium/auxiliary/util/u_pstipple.c +++ b/src/gallium/auxiliary/util/u_pstipple.c @@ -63,7 +63,7 @@ util_pstipple_update_stipple_texture(struct pipe_context *pipe, struct pipe_resource *tex, const uint32_t pattern[32]) { - static const uint bit31 = 1 << 31; + static const uint bit31 = 1u << 31; struct pipe_transfer *transfer; ubyte *data; int i, j; diff --git a/src/gallium/drivers/softpipe/sp_quad_stipple.c b/src/gallium/drivers/softpipe/sp_quad_stipple.c index a0527a596a6..4b29c2eb221 100644 --- a/src/gallium/drivers/softpipe/sp_quad_stipple.c +++ b/src/gallium/drivers/softpipe/sp_quad_stipple.c @@ -16,8 +16,8 @@ static void stipple_quad(struct quad_stage *qs, struct quad_header *quads[], unsigned nr) { - static const uint bit31 = 1 << 31; - static const uint bit30 = 1 << 30; + static const uint bit31 = 1u << 31; + static const uint bit30 = 1u << 30; unsigned pass = nr; struct softpipe_context *softpipe = qs->softpipe; diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index d73a4b34a5a..c89d003c125 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -1159,7 +1159,7 @@ st_translate_mesa_program( /* texture samplers */ for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; i++) { - if (program->SamplersUsed & (1 << i)) { + if (program->SamplersUsed & (1u << i)) { unsigned target = translate_texture_index(program->TexturesUsed[i], !!(program->ShadowSamplers & (1 << i))); diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 32ada9f7b8a..444e5aac7bd 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -1121,7 +1121,7 @@ st_translate_program_common(struct st_context *st, /* Also add patch inputs. */ for (attr = 0; attr < 32; attr++) { - if (prog->PatchInputsRead & (1 << attr)) { + if (prog->PatchInputsRead & (1u << attr)) { GLuint slot = num_inputs++; GLuint patch_attr = VARYING_SLOT_PATCH0 + attr; @@ -1240,7 +1240,7 @@ st_translate_program_common(struct st_context *st, /* Also add patch outputs. */ for (attr = 0; attr < 32; attr++) { - if (prog->PatchOutputsWritten & (1 << attr)) { + if (prog->PatchOutputsWritten & (1u << attr)) { GLuint slot = num_outputs++; GLuint patch_attr = VARYING_SLOT_PATCH0 + attr;