test/constant_time_test.c:128: error: INTEGER_OVERFLOW_L1
  (0 - 1):unsigned32 by call to `constant_time_is_zero_8`.
Showing all 8 steps of the trace


test/constant_time_test.c:35:1: Array declaration
33.   };
34.   
35. > static unsigned char test_values_8[] = {
36.       0, 1, 2, 20, 32, 127, 128, 129, 255
37.   };

test/constant_time_test.c:126:5: Assignment
124.   static int test_is_zero_8(int i)
125.   {
126.       unsigned int a = test_values_8[i];
           ^
127.   
128.       if (a == 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_TRUE_8))

test/constant_time_test.c:128:20: Call
126.       unsigned int a = test_values_8[i];
127.   
128.       if (a == 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_TRUE_8))
                          ^
129.           return 0;
130.       if (a != 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_FALSE_8))

include/internal/constant_time_locl.h:178:1: Parameter `a`
  176.   }
  177.   
  178. > static ossl_inline unsigned char constant_time_is_zero_8(unsigned int a)
  179.   {
  180.       return (unsigned char)constant_time_is_zero(a);

include/internal/constant_time_locl.h:180:27: Call
  178.   static ossl_inline unsigned char constant_time_is_zero_8(unsigned int a)
  179.   {
  180.       return (unsigned char)constant_time_is_zero(a);
                                   ^
  181.   }
  182.   

include/internal/constant_time_locl.h:168:1: <LHS trace>
166.   }
167.   
168. > static ossl_inline unsigned int constant_time_is_zero(unsigned int a)
169.   {
170.       return constant_time_msb(~a & (a - 1));

include/internal/constant_time_locl.h:168:1: Parameter `a`
    166.   }
    167.   
    168. > static ossl_inline unsigned int constant_time_is_zero(unsigned int a)
    169.   {
    170.       return constant_time_msb(~a & (a - 1));

include/internal/constant_time_locl.h:170:12: Binary operation: (0 - 1):unsigned32 by call to `constant_time_is_zero_8` 
    168.   static ossl_inline unsigned int constant_time_is_zero(unsigned int a)
    169.   {
    170.       return constant_time_msb(~a & (a - 1));
                      ^
    171.   }
    172.   

static ossl_inline unsigned int constant_time_is_zero(unsigned int a)
{
    return constant_time_msb(~a & (a - 1));
}
['static int test_is_zero_8(int i)\n{\n    unsigned int a = test_values_8[i];\n    if (a == 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_TRUE_8))\n        return 0;\n    if (a != 0 && !TEST_uint_eq(constant_time_is_zero_8(a), CONSTTIME_FALSE_8))\n        return 0;\n    return 1;\n}', 'static ossl_inline unsigned char constant_time_is_zero_8(unsigned int a)\n{\n    return (unsigned char)constant_time_is_zero(a);\n}', 'static ossl_inline unsigned int constant_time_is_zero(unsigned int a)\n{\n    return constant_time_msb(~a & (a - 1));\n}']