crypto/ec/curve448/constant_time.h:182: error: INTEGER_OVERFLOW_L2
  ([0, `idx`] - 1):unsigned64 by call to `word_is_zero`.
Showing all 9 steps of the trace


crypto/ec/curve448/constant_time.h:164:1: Parameter `idx`
162.    * The table and output must not alias.
163.    */
164. > static ossl_inline void constant_time_lookup(void *RESTRICT out_,
165.                                                const void *table_,
166.                                                word_t elem_bytes,

crypto/ec/curve448/constant_time.h:170:57: Call
168.                                                word_t idx)
169.   {
170.       big_register_t big_one = br_set_to_mask(1), big_i = br_set_to_mask(idx);
                                                               ^
171.   
172.       /* Can't do pointer arithmetic on void * */

crypto/ec/curve448/word.h:152:1: Parameter `x`
  150.   typedef uint32_t big_register_t;
  151.   
  152. > static ossl_inline big_register_t br_set_to_mask(mask_t x)
  153.   {
  154.       return (big_register_t) x;

crypto/ec/curve448/word.h:154:5: Assignment
  152.   static ossl_inline big_register_t br_set_to_mask(mask_t x)
  153.   {
  154.       return (big_register_t) x;
             ^
  155.   }
  156.   # endif

crypto/ec/curve448/constant_time.h:170:5: Assignment
168.                                                word_t idx)
169.   {
170.       big_register_t big_one = br_set_to_mask(1), big_i = br_set_to_mask(idx);
           ^
171.   
172.       /* Can't do pointer arithmetic on void * */

crypto/ec/curve448/constant_time.h:182:34: Call
180.       memset(out, 0, elem_bytes);
181.       for (j = 0; j < n_table; j++, big_i -= big_one) {
182.           big_register_t br_mask = br_is_zero(big_i);
                                        ^
183.           word_t mask;
184.   

crypto/ec/curve448/arch_32/arch_intrinsics.h:18:1: <LHS trace>
16.   # define ARCH_WORD_BITS 32
17.   
18. > static ossl_inline uint32_t word_is_zero(uint32_t a)
19.   {
20.       /* let's hope the compiler isn't clever enough to optimize this. */

crypto/ec/curve448/arch_32/arch_intrinsics.h:18:1: Parameter `a`
  16.   # define ARCH_WORD_BITS 32
  17.   
  18. > static ossl_inline uint32_t word_is_zero(uint32_t a)
  19.   {
  20.       /* let's hope the compiler isn't clever enough to optimize this. */

crypto/ec/curve448/arch_32/arch_intrinsics.h:21:5: Binary operation: ([0, idx] - 1):unsigned64 by call to `word_is_zero` 
  19.   {
  20.       /* let's hope the compiler isn't clever enough to optimize this. */
  21.       return (((uint64_t)a) - 1) >> 32;
            ^
  22.   }
  23.   
