diff options
author | Ian Romanick <[email protected]> | 2019-11-18 19:33:06 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2019-12-04 15:34:03 -0800 |
commit | a7e607641a2b6f1d89e1c5e6eaf91d6faf156286 (patch) | |
tree | fbc7bd652b6e4b1783998a4b1107b81bc826b618 | |
parent | 668635abd26dda458f9293f99dd39f56431a4d61 (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.h | 7 |
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 |