From a53a6281cfaa445166f6a4f15ef5d662f69f0dc2 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 22 Jun 2013 22:43:47 +0000 Subject: [PATCH] * bignum.c (bary_unpack_internal): Suppress warnings (C4146) on Visual Studio. Reported by ko1 via IRC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ bignum.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7403694b17..1927ff74a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jun 23 07:41:52 2013 Tanaka Akira + + * bignum.c (bary_unpack_internal): Suppress warnings (C4146) on Visual Studio. + Reported by ko1 via IRC. + Sun Jun 23 06:49:28 2013 Koichi Sasada * include/ruby/ruby.h, gc.c: rename macros and functions: diff --git a/bignum.c b/bignum.c index b8bcedc7ac..21a03df314 100644 --- a/bignum.c +++ b/bignum.c @@ -1364,7 +1364,7 @@ bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, siz sign = (flags & INTEGER_PACK_NEGATIVE) ? ((sizeof(uint8_t) == SIZEOF_BDIGITS && u == 0) ? -2 : -1) : ((u >> (sizeof(uint8_t) * CHAR_BIT - 1)) ? -1 : 1); - if (sign < 0) u = -(u | LSHIFTX((~(BDIGIT)0), sizeof(uint8_t) * CHAR_BIT)); + if (sign < 0) u = ((BDIGIT)0) - (u | LSHIFTX((~(BDIGIT)0), sizeof(uint8_t) * CHAR_BIT)); } else sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1; @@ -1379,7 +1379,7 @@ bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, siz sign = (flags & INTEGER_PACK_NEGATIVE) ? ((sizeof(uint16_t) == SIZEOF_BDIGITS && u == 0) ? -2 : -1) : ((u >> (sizeof(uint16_t) * CHAR_BIT - 1)) ? -1 : 1); - if (sign < 0) u = -(u | LSHIFTX((~(BDIGIT)0), sizeof(uint16_t) * CHAR_BIT)); + if (sign < 0) u = ((BDIGIT)0) - (u | LSHIFTX((~(BDIGIT)0), sizeof(uint16_t) * CHAR_BIT)); } else sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1; @@ -1395,7 +1395,7 @@ bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, siz sign = (flags & INTEGER_PACK_NEGATIVE) ? ((sizeof(uint32_t) == SIZEOF_BDIGITS && u == 0) ? -2 : -1) : ((u >> (sizeof(uint32_t) * CHAR_BIT - 1)) ? -1 : 1); - if (sign < 0) u = -(u | LSHIFTX((~(BDIGIT)0), sizeof(uint32_t) * CHAR_BIT)); + if (sign < 0) u = ((BDIGIT)0) - (u | LSHIFTX((~(BDIGIT)0), sizeof(uint32_t) * CHAR_BIT)); } else sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1; @@ -1411,7 +1411,7 @@ bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, siz sign = (flags & INTEGER_PACK_NEGATIVE) ? ((sizeof(uint64_t) == SIZEOF_BDIGITS && u == 0) ? -2 : -1) : ((u >> (sizeof(uint64_t) * CHAR_BIT - 1)) ? -1 : 1); - if (sign < 0) u = -(u | LSHIFTX((~(BDIGIT)0), sizeof(uint64_t) * CHAR_BIT)); + if (sign < 0) u = ((BDIGIT)0) - (u | LSHIFTX((~(BDIGIT)0), sizeof(uint64_t) * CHAR_BIT)); } else sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1;