From a60912f145eee98164750e35991ee7e3e8fccfde Mon Sep 17 00:00:00 2001 From: Joseph Thomson Date: Fri, 20 Feb 2015 10:12:50 +0000 Subject: [PATCH] Avoid GCC sign-compare warning. GCC 4.7 gave the warning "signed and unsigned type in conditional expression" because the ternary operator mixes signed and unsigned integers. Fixed by casting to unsigned inside the "if" branch instead of casting the result of the entire conditional. --- stb_image.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stb_image.h b/stb_image.h index c3945c2..80b70b1 100644 --- a/stb_image.h +++ b/stb_image.h @@ -4642,7 +4642,7 @@ static stbi_uc *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int } } else { for (i=0; i < (int) s->img_x; ++i) { - stbi__uint32 v = (stbi__uint32) (bpp == 16 ? stbi__get16le(s) : stbi__get32le(s)); + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); int a; out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount));