Fix a signed-compare warning.
authorRalph Giles <giles@mozilla.com>
Wed, 30 Nov 2011 18:48:32 +0000 (10:48 -0800)
committerRalph Giles <giles@mozilla.com>
Tue, 6 Mar 2012 01:09:54 +0000 (17:09 -0800)
The silk math debug macros include a bounds check on silk_abs.
Because INT_MIN = (-INT_MAX - 1), abs(INT_MIN) can't be
represented as an int. The macro was checking for this value
as 0x8000... without a cast to signed, warning on gcc.

silk/typedef.h already defines minimum values for the int
types, so we correct the warning by using those.

silk/MacroDebug.h

index 9d7e1f8..a0d77c7 100644 (file)
@@ -524,13 +524,13 @@ static inline opus_int32 silk_abs(opus_int32 a){
 
 #undef silk_abs_int64
 static inline opus_int64 silk_abs_int64(opus_int64 a){
 
 #undef silk_abs_int64
 static inline opus_int64 silk_abs_int64(opus_int64 a){
-    silk_assert(a != 0x8000000000000000);
+    silk_assert(a != silk_int64_MIN);
     return (((a) >  0)  ? (a) : -(a));            /* Be careful, silk_abs returns wrong when input equals to silk_intXX_MIN */
 }
 
 #undef silk_abs_int32
 static inline opus_int32 silk_abs_int32(opus_int32 a){
     return (((a) >  0)  ? (a) : -(a));            /* Be careful, silk_abs returns wrong when input equals to silk_intXX_MIN */
 }
 
 #undef silk_abs_int32
 static inline opus_int32 silk_abs_int32(opus_int32 a){
-    silk_assert(a != 0x80000000);
+    silk_assert(a != silk_int32_MIN);
     return abs(a);
 }
 
     return abs(a);
 }