mirror of
https://github.com/postgres/postgres.git
synced 2025-07-17 06:41:09 +03:00
Suppress -Wshift-negative-value warnings.
Clean up four places that result in compiler warnings when using recent gcc with this warning class enabled (as seen on buildfarm members calliphoridae, skink, and others). In all these places, this is purely cosmetic, because the shift distance could not be large enough to risk a change of sign, so there's no chance of implementation-dependent behavior. Still, it's easy enough to avoid the warning by casting the shifted value to unsigned, so let's do that. Patch HEAD only, this isn't worth a back-patch.
This commit is contained in:
@ -1539,11 +1539,11 @@ bitfromint4(PG_FUNCTION_ARGS)
|
||||
/* store first fractional byte */
|
||||
if (destbitsleft > srcbitsleft)
|
||||
{
|
||||
int val = (int) (a >> (destbitsleft - 8));
|
||||
unsigned int val = (unsigned int) (a >> (destbitsleft - 8));
|
||||
|
||||
/* Force sign-fill in case the compiler implements >> as zero-fill */
|
||||
if (a < 0)
|
||||
val |= (-1) << (srcbitsleft + 8 - destbitsleft);
|
||||
val |= ((unsigned int) -1) << (srcbitsleft + 8 - destbitsleft);
|
||||
*r++ = (bits8) (val & BITMASK);
|
||||
destbitsleft -= 8;
|
||||
}
|
||||
@ -1619,11 +1619,11 @@ bitfromint8(PG_FUNCTION_ARGS)
|
||||
/* store first fractional byte */
|
||||
if (destbitsleft > srcbitsleft)
|
||||
{
|
||||
int val = (int) (a >> (destbitsleft - 8));
|
||||
unsigned int val = (unsigned int) (a >> (destbitsleft - 8));
|
||||
|
||||
/* Force sign-fill in case the compiler implements >> as zero-fill */
|
||||
if (a < 0)
|
||||
val |= (-1) << (srcbitsleft + 8 - destbitsleft);
|
||||
val |= ((unsigned int) -1) << (srcbitsleft + 8 - destbitsleft);
|
||||
*r++ = (bits8) (val & BITMASK);
|
||||
destbitsleft -= 8;
|
||||
}
|
||||
|
Reference in New Issue
Block a user