summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2016-07-20 23:15:16 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-07-20 23:15:16 -0400
commitde473b305c6e18587ee3c205b313e75356e3f540 (patch)
tree419a3b33a899445b20062297f69d3b2c441e2214
parente1bce7b3f6eff218cd23fe26b115d315e78f3ad6 (diff)
downloadopus-de473b305c6e18587ee3c205b313e75356e3f540.tar.gz
Avoids undefined behaviour from left-shifting negative values
-rw-r--r--silk/fixed/find_LTP_FIX.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/silk/fixed/find_LTP_FIX.c b/silk/fixed/find_LTP_FIX.c
index b5ef7167..62d4afb2 100644
--- a/silk/fixed/find_LTP_FIX.c
+++ b/silk/fixed/find_LTP_FIX.c
@@ -85,10 +85,10 @@ TIC(div)
}
#else
for( i = 0; i < LTP_ORDER * LTP_ORDER; i++ ) {
- XXLTP_Q17_ptr[ i ] = (opus_int32)( ( ((opus_int64)XXLTP_Q17_ptr[ i ]) << 17 ) / temp );
+ XXLTP_Q17_ptr[ i ] = (opus_int32)( silk_LSHIFT64( (opus_int64)XXLTP_Q17_ptr[ i ], 17 ) / temp );
}
for( i = 0; i < LTP_ORDER; i++ ) {
- xXLTP_Q17_ptr[ i ] = (opus_int32)( ( ((opus_int64)xXLTP_Q17_ptr[ i ]) << 17 ) / temp );
+ xXLTP_Q17_ptr[ i ] = (opus_int32)( silk_LSHIFT64( (opus_int64)xXLTP_Q17_ptr[ i ], 17 ) / temp );
}
#endif
TOC(div)