Fix the following conversion overflow errors. The input field is already limited to 3/2/1 bits using the bitwise and, move the parenthesis around to avoid the bogus warning:
" fs/exfat/utf.c: In function ‘utf8_to_wchar’: fs/exfat/utf.c:165:23: warning: overflow in conversion from ‘int’ to ‘wchar_t’ {aka ‘short unsigned int’} changes value from ‘(int)(short unsigned int)*input << 18 & 1835008’ to ‘0’ [-Woverflow] 165 | *wc = ((wchar_t) input[0] & 0x07) << 18; | ^ fs/exfat/utf.c:170:23: warning: overflow in conversion from ‘int’ to ‘wchar_t’ {aka ‘short unsigned int’} changes value from ‘(int)(short unsigned int)*input << 24 & 50331648’ to ‘0’ [-Woverflow] 170 | *wc = ((wchar_t) input[0] & 0x03) << 24; | ^ fs/exfat/utf.c:175:23: warning: overflow in conversion from ‘int’ to ‘wchar_t’ {aka ‘short unsigned int’} changes value from ‘(int)(short unsigned int)*input << 30 & 1073741824’ to ‘0’ [-Woverflow] 175 | *wc = ((wchar_t) input[0] & 0x01) << 30; | ^ " Signed-off-by: Marek Vasut <ma...@denx.de> --- Cc: Baruch Siach <bar...@tkos.co.il> Cc: Francesco Dolcini <francesco.dolc...@toradex.com> Cc: Heinrich Schuchardt <xypron.g...@gmx.de> Cc: Hiago De Franco <hiago.fra...@toradex.com> Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> Cc: Nam Cao <nam...@linutronix.de> Cc: Simon Glass <s...@chromium.org> Cc: Sughosh Ganu <sughosh.g...@linaro.org> Cc: Tom Rini <tr...@konsulko.com> Cc: u-boot@lists.denx.de --- fs/exfat/utf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/exfat/utf.c b/fs/exfat/utf.c index b1d09e76478..5be8dcc2170 100644 --- a/fs/exfat/utf.c +++ b/fs/exfat/utf.c @@ -162,17 +162,17 @@ static const char* utf8_to_wchar(const char* input, wchar_t* wc, } else if ((input[0] & 0xf8) == 0xf0) { - *wc = ((wchar_t) input[0] & 0x07) << 18; + *wc = (wchar_t)((input[0] & 0x07) << 18); size = 4; } else if ((input[0] & 0xfc) == 0xf8) { - *wc = ((wchar_t) input[0] & 0x03) << 24; + *wc = (wchar_t)((input[0] & 0x03) << 24); size = 5; } else if ((input[0] & 0xfe) == 0xfc) { - *wc = ((wchar_t) input[0] & 0x01) << 30; + *wc = (wchar_t)((input[0] & 0x01) << 30); size = 6; } else -- 2.47.2