From 38cec87c9360db5c78833da505efd50ac8e26a76 Mon Sep 17 00:00:00 2001 From: Richard Barnes Date: Sat, 9 Mar 2024 01:52:00 -0500 Subject: [PATCH] Fix shift-sign issue in Convert.c (#7838) * Fix shift-sign issue in Convert.c Fixes ``` libImaging/Convert.c:513:25: error: signed shift result (0xFF000000) sets the sign bit of the shift expression's type ('int') and becomes negative [-Werror,-Wshift-sign-overflow] UINT32 trns = (0xff << 24) | ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff); ~~~~ ^ ~~ ``` --------- Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com> --- src/libImaging/Convert.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libImaging/Convert.c b/src/libImaging/Convert.c index 2654fd40d..5cc39cd00 100644 --- a/src/libImaging/Convert.c +++ b/src/libImaging/Convert.c @@ -510,7 +510,7 @@ rgbT2rgba(UINT8 *out, int xsize, int r, int g, int b) { UINT32 trns = ((r & 0xff) << 24) | ((g & 0xff) << 16) | ((b & 0xff) << 8) | 0xff; UINT32 repl = trns & 0xffffff00; #else - UINT32 trns = (0xff << 24) | ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff); + UINT32 trns = (0xffU << 24) | ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff); UINT32 repl = trns & 0x00ffffff; #endif