Possible crash (saturation) in fec_estimation
In this part of the code in FEC_pitch_estim_fx() :
tmp = mult_r( pitch_buf[1], 22938 ); /*Q6( 0.7f * pitch_buf[1] 0.7 in Q15)*/
tmp1 = shl( tmp, 1 ); /*Q6 (1.4f * pitch_buf[1])*/
tmp2 = round_fx( L_shl( Mpy_32_16_1( old_pitch_buf[2 * NB_SUBFR - 1], 22938 ), 6 ) ); /*Q6 (0.7f * old_pitch_buf[2*NB_SUBFR-1])*/
>>> tmp3 = shl( tmp2, 1 ); /*Q6 (1.4f * old_pitch_buf[2*NB_SUBFR-1])*/
tmp16k1 = round_fx( L_shl( Mpy_32_16_1( old_pitch_buf[2 * NB_SUBFR16k - 1], 22938 ), 6 ) ); /*Q6 0.7f * old_pitch_buf[2*NB_SUBFR16k-1]*/
#ifdef BASOP_NOGLOB
tmp16k2 = shl_sat( tmp16k1, 1 ); /*Q6 1.4f * old_pitch_buf[2*NB_SUBFR16k-1]*/
#else
tmp16k2 = shl( tmp16k1, 1 ); /*Q6 1.4f * old_pitch_buf[2*NB_SUBFR16k-1]*/
#endif
```
The 2nd shl has been taken care of, but not the first one. To keep EVS BE, the saturation shall be added to the 1st one as well.