crypto/ec/curve448/scalar.c:166: error: INTEGER_OVERFLOW_L1
  (0 - 1):unsigned64 by call to `word_is_zero`.
Showing all 5 steps of the trace


crypto/ec/curve448/scalar.c:157:5: Assignment
155.   {
156.       unsigned int i;
157.       c448_dsword_t accum = 0;
           ^
158.   
159.       scalar_decode_short(s, ser, C448_SCALAR_BYTES);

crypto/ec/curve448/scalar.c:166:29: Call
164.       curve448_scalar_mul(s, s, curve448_scalar_one); /* ham-handed reduce */
165.   
166.       return c448_succeed_if(~word_is_zero((uint32_t)accum));
                                   ^
167.   }
168.   

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 - 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.   
