ref: fbed746cb2d0fee57eae090e67d148d89923f6ff
parent: c9d5bea13e3cb7381bfa897a45d8bab4e7b767a7
author: Jean-Marc Valin <[email protected]>
date: Thu Jul 21 22:27:34 EDT 2022
Relaxing checks for MULT16_32_QX() MULT16_32_QX() is now implemented using a signed-unsigned multiply, so the second argument can now have one extra bit compared to the old signed-signed implementation. Reviewed by Mark Harris
--- a/celt/fixed_debug.h
+++ b/celt/fixed_debug.h
@@ -491,7 +491,7 @@
celt_assert(0);
#endif
}
- if (ABS32(b)>=((opus_val32)(1)<<(15+Q)))
+ if (ABS32(b)>=((opus_int64)(1)<<(16+Q)))
{
fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n", Q, (int)a, (int)b, file, line);
#ifdef FIXED_DEBUG_ASSERT
@@ -524,7 +524,7 @@
celt_assert(0);
#endif
}
- if (ABS32(b)>=((opus_int64)(1)<<(15+Q)))
+ if (ABS32(b)>=((opus_int64)(1)<<(16+Q)))
{
fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n\n", Q, (int)a, (int)b,file, line);
#ifdef FIXED_DEBUG_ASSERT