codec_gsm: Avoid shifting a negative signed value.
authorAlexander Traud <pabstraud@compuserve.com>
Sat, 6 Jan 2018 11:01:00 +0000 (12:01 +0100)
committerAlexander Traud <pabstraud@compuserve.com>
Sat, 6 Jan 2018 11:01:00 +0000 (12:01 +0100)
clang 5.0 warned about this.

ASTERISK-27558

Change-Id: Icc452ecb0d86bbeba78dae768cc472ec540699df

codecs/gsm/src/short_term.c

index 4172d32..d22d276 100644 (file)
@@ -55,21 +55,21 @@ static void Decoding_of_the_coded_Log_Area_Ratios P2((LARc,LARpp),
         */
 
 #undef STEP
-#define        STEP( B, MIC, INVA )    \
+#define        STEP( B_TIMES_TWO, MIC, INVA )  \
                temp1    = GSM_ADD( *LARc++, MIC ) << 10;       \
-               temp1    = GSM_SUB( temp1, B << 1 );            \
+               temp1    = GSM_SUB( temp1, B_TIMES_TWO );       \
                temp1    = (word)GSM_MULT_R( INVA, temp1 );             \
                *LARpp++ = GSM_ADD( temp1, temp1 );
 
        STEP(      0,  -32,  13107 );
        STEP(      0,  -32,  13107 );
-       STEP(   2048,  -16,  13107 );
-       STEP(  -2560,  -16,  13107 );
+       STEP(   4096,  -16,  13107 );
+       STEP(  -5120,  -16,  13107 );
 
-       STEP(     94,   -8,  19223 );
-       STEP(  -1792,   -8,  17476 );
-       STEP(   -341,   -4,  31454 );
-       STEP(  -1144,   -4,  29708 );
+       STEP(    188,   -8,  19223 );
+       STEP(  -3584,   -8,  17476 );
+       STEP(   -682,   -4,  31454 );
+       STEP(  -2288,   -4,  29708 );
 
        /* NOTE: the addition of *MIC is used to restore
         *       the sign of *LARc.