Fix shift-negative-value warning
authorKalle Raita <kraita@google.com>
Thu, 10 Dec 2015 21:37:34 +0000 (13:37 -0800)
committerandroid-build-merger <android-build-merger@google.com>
Thu, 10 Dec 2015 21:37:34 +0000 (13:37 -0800)
am: 801b508c8d

* commit '801b508c8d5f464df5ae792d48909d2df8574141':
  Fix shift-negative-value warning

framework/delibs/debase/deInt32.h
framework/delibs/debase/deInt32Test.c

index c1b4887..4806fe6 100644 (file)
@@ -519,7 +519,7 @@ DE_INLINE deInt32 deInt32ModF (deInt32 n, deInt32 d)
 
 DE_INLINE deBool deInt64InInt32Range (deInt64 x)
 {
-       return ((x >= (-1ll<<31)) && (x <= ((1ll<<31)-1)));
+       return ((x >= (((deInt64)((deInt32)(-0x7FFFFFFF - 1))))) && (x <= ((1ll<<31)-1)));
 }
 
 
index d87aee7..a79d08e 100644 (file)
@@ -198,6 +198,20 @@ void deInt32_selfTest (void)
        DE_TEST_ASSERT(deReverseBytes32(0xfecddeef) == 0xefdecdfe);
        DE_TEST_ASSERT(deReverseBytes16(0x1122) == 0x2211);
        DE_TEST_ASSERT(deReverseBytes16(0xdeef) == 0xefde);
+
+       DE_TEST_ASSERT(deInt64InInt32Range((deInt64)0x7FFFFFF));
+       DE_TEST_ASSERT(deInt64InInt32Range(0));
+       DE_TEST_ASSERT(deInt64InInt32Range(1));
+       DE_TEST_ASSERT(deInt64InInt32Range(-1));
+       DE_TEST_ASSERT(deInt64InInt32Range(-((deInt64)0x7FFFFFF)));
+       DE_TEST_ASSERT(deInt64InInt32Range(-((deInt64)0x8000 << 16)));
+       DE_TEST_ASSERT(deInt64InInt32Range((deInt64)deIntMinValue32(32)));
+
+       DE_TEST_ASSERT(!deInt64InInt32Range((((deInt64)0x7FFFFFF) << 32) | (deInt64)0xFFFFFFFF));
+       DE_TEST_ASSERT(!deInt64InInt32Range((deInt64)0x7FFFFFFF + 1));
+       DE_TEST_ASSERT(!deInt64InInt32Range(-((deInt64)0x7FFFFFFF + 2)));
+       DE_TEST_ASSERT(!deInt64InInt32Range(-((((deInt64)0x7FFFFFF) << 32) | (deInt64)0xFFFFFFFF)));
+       DE_TEST_ASSERT(!deInt64InInt32Range((deInt64)deIntMinValue32(32) - 1));
 }
 
 DE_END_EXTERN_C