crypto/ec/curve448/f_generic.c:149: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned64 by call to `word_is_zero`.
Showing all 5 steps of the trace


crypto/ec/curve448/f_generic.c:139:5: Assignment
137.   mask_t gf_eq(const gf a, const gf b) {
138.       gf c;
139.       mask_t ret=0;
           ^
140.       unsigned int i;
141.   

crypto/ec/curve448/f_generic.c:149:12: Call
147.       }
148.   
149.       return word_is_zero(ret);
                  ^
150.   }

crypto/ec/curve448/arch_32/arch_intrinsics.h:10:1: <LHS trace>
8.   #define ARCH_WORD_BITS 32
9.   
10. > static __inline__ __attribute((always_inline,unused))
11.   uint32_t word_is_zero(uint32_t a) {
12.       /* let's hope the compiler isn't clever enough to optimize this. */

crypto/ec/curve448/arch_32/arch_intrinsics.h:10:1: Parameter `a`
  8.   #define ARCH_WORD_BITS 32
  9.   
  10. > static __inline__ __attribute((always_inline,unused))
  11.   uint32_t word_is_zero(uint32_t a) {
  12.       /* let's hope the compiler isn't clever enough to optimize this. */

crypto/ec/curve448/arch_32/arch_intrinsics.h:13:5: Binary operation: ([0, +oo] - 1):unsigned64 by call to `word_is_zero` 
  11.   uint32_t word_is_zero(uint32_t a) {
  12.       /* let's hope the compiler isn't clever enough to optimize this. */
  13.       return (((uint64_t)a)-1)>>32;
            ^
  14.   }
  15.   

static __inline__ __attribute((always_inline,unused))
uint32_t word_is_zero(uint32_t a) {
    return (((uint64_t)a)-1)>>32;
}
['mask_t gf_eq(const gf a, const gf b) {\n    gf c;\n    mask_t ret=0;\n    unsigned int i;\n    gf_sub(c,a,b);\n    gf_strong_reduce(c);\n    for (i=0; i<NLIMBS; i++) {\n        ret |= c->limb[LIMBPERM(i)];\n    }\n    return word_is_zero(ret);\n}', 'static __inline__ __attribute((always_inline,unused))\nuint32_t word_is_zero(uint32_t a) {\n    return (((uint64_t)a)-1)>>32;\n}']