crypto/ec/curve448/curve448.c:485: error: INTEGER_OVERFLOW_L2
  (0 - [0, 1]):unsigned32 by call to `curve448_scalar_halve`.
Showing all 6 steps of the trace


crypto/ec/curve448/curve448.c:481:5: Call
479.       scalar2[X_PRIVATE_BYTES - 1] |= 1 << ((X_PRIVATE_BITS + 7) % 8);
480.   
481.       curve448_scalar_decode_long(the_scalar, scalar2, sizeof(scalar2));
           ^
482.   
483.       /* Compensate for the encoding ratio */

crypto/ec/curve448/scalar.c:173:1: Parameter `s->limb[*]`
  171.   }
  172.   
  173. > void curve448_scalar_decode_long(curve448_scalar_t s,
  174.                                    const unsigned char *ser, size_t ser_len)
  175.   {

crypto/ec/curve448/curve448.c:485:9: Call
483.       /* Compensate for the encoding ratio */
484.       for (i = 1; i < X448_ENCODE_RATIO; i <<= 1)
485.           curve448_scalar_halve(the_scalar, the_scalar);
               ^
486.   
487.       curve448_precomputed_scalarmul(p, curve448_precomputed_base, the_scalar);

crypto/ec/curve448/scalar.c:221:1: <RHS trace>
219.   }
220.   
221. > void curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t a)
222.   {
223.       c448_word_t mask = 0 - (a->limb[0] & 1);

crypto/ec/curve448/scalar.c:221:1: Parameter `a->limb[*]`
  219.   }
  220.   
  221. > void curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t a)
  222.   {
  223.       c448_word_t mask = 0 - (a->limb[0] & 1);

crypto/ec/curve448/scalar.c:223:5: Binary operation: (0 - [0, 1]):unsigned32 by call to `curve448_scalar_halve` 
  221.   void curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t a)
  222.   {
  223.       c448_word_t mask = 0 - (a->limb[0] & 1);
             ^
  224.       c448_dword_t chain = 0;
  225.       unsigned int i;
