summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2019-11-18 19:33:06 -0800
committerIan Romanick <[email protected]>2019-12-04 15:34:03 -0800
commita7e607641a2b6f1d89e1c5e6eaf91d6faf156286 (patch)
treefbc7bd652b6e4b1783998a4b1107b81bc826b618
parent668635abd26dda458f9293f99dd39f56431a4d61 (diff)
mesa: Silence 'left shift of negative value' warning in BPTC compression code
src/util/format/../../mesa/main/texcompress_bptc_tmp.h:830:31: warning: left shift of negative value [-Wshift-negative-value] 830 | value |= (~(int32_t) 0) << n_bits; | ^~ v2: Rewrite to just shift left then shift right. Based on conversation with Neil in https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2792#note_320272, this should be fine. Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> [v1] Reviewed-by: Neil Roberts <[email protected]>
-rw-r--r--src/mesa/main/texcompress_bptc_tmp.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mesa/main/texcompress_bptc_tmp.h b/src/mesa/main/texcompress_bptc_tmp.h
index 90837d6af3a..95b83814a3c 100644
--- a/src/mesa/main/texcompress_bptc_tmp.h
+++ b/src/mesa/main/texcompress_bptc_tmp.h
@@ -826,11 +826,10 @@ static int32_t
sign_extend(int32_t value,
int n_bits)
{
- if ((value & (1 << (n_bits - 1)))) {
- value |= (~(int32_t) 0) << n_bits;
- }
+ assert(n_bits > 0 && n_bits < 32);
- return value;
+ const unsigned n = 32 - n_bits;
+ return (int32_t)((uint32_t)value << n) >> n;
}
static int