From 27bc1311af9afe93d016f6265faf1c9a2c391067 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Mon, 26 Jan 2015 05:26:09 +0000 Subject: [PATCH] Silence some warnings from pedantic static analysis tools, improve compatibility with C++. C doesn't include the null in an array initilized from a string literal if it doesn't fit, in C++ this is invalid. The vararray style prototypes and init+calc also changed in this commit are not C89 enough for some tools. --- src/ecmult_gen_impl.h | 2 +- src/field_10x26_impl.h | 4 +++- src/field_5x52_impl.h | 4 +++- src/scalar_8x32_impl.h | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ecmult_gen_impl.h b/src/ecmult_gen_impl.h index e886b7dba0d..849452c7a1b 100644 --- a/src/ecmult_gen_impl.h +++ b/src/ecmult_gen_impl.h @@ -46,7 +46,7 @@ static void secp256k1_ecmult_gen_start(void) { /* Construct a group element with no known corresponding scalar (nothing up my sleeve). */ { - static const unsigned char nums_b32[32] = "The scalar for this x is unknown"; + static const unsigned char nums_b32[33] = "The scalar for this x is unknown"; secp256k1_fe_t nums_x; secp256k1_ge_t nums_ge; VERIFY_CHECK(secp256k1_fe_set_b32(&nums_x, nums_b32)); diff --git a/src/field_10x26_impl.h b/src/field_10x26_impl.h index 4736e3e2edf..0afbb18a4af 100644 --- a/src/field_10x26_impl.h +++ b/src/field_10x26_impl.h @@ -1064,7 +1064,9 @@ static void secp256k1_fe_sqr(secp256k1_fe_t *r, const secp256k1_fe_t *a) { } static SECP256K1_INLINE void secp256k1_fe_storage_cmov(secp256k1_fe_storage_t *r, const secp256k1_fe_storage_t *a, int flag) { - uint32_t mask0 = flag + ~((uint32_t)0), mask1 = ~mask0; + uint32_t mask0, mask1; + mask0 = flag + ~((uint32_t)0); + mask1 = ~mask0; r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); diff --git a/src/field_5x52_impl.h b/src/field_5x52_impl.h index a281e9a339b..2f9c8704a84 100644 --- a/src/field_5x52_impl.h +++ b/src/field_5x52_impl.h @@ -400,7 +400,9 @@ static void secp256k1_fe_sqr(secp256k1_fe_t *r, const secp256k1_fe_t *a) { } static SECP256K1_INLINE void secp256k1_fe_storage_cmov(secp256k1_fe_storage_t *r, const secp256k1_fe_storage_t *a, int flag) { - uint64_t mask0 = flag + ~((uint64_t)0), mask1 = ~mask0; + uint64_t mask0, mask1; + mask0 = flag + ~((uint64_t)0); + mask1 = ~mask0; r->n[0] = (r->n[0] & mask0) | (a->n[0] & mask1); r->n[1] = (r->n[1] & mask0) | (a->n[1] & mask1); r->n[2] = (r->n[2] & mask0) | (a->n[2] & mask1); diff --git a/src/scalar_8x32_impl.h b/src/scalar_8x32_impl.h index 2a7d2c9ac94..22b31d41125 100644 --- a/src/scalar_8x32_impl.h +++ b/src/scalar_8x32_impl.h @@ -462,7 +462,7 @@ static void secp256k1_scalar_reduce_512(secp256k1_scalar_t *r, const uint32_t *l secp256k1_scalar_reduce(r, c + secp256k1_scalar_check_overflow(r)); } -static void secp256k1_scalar_mul_512(uint32_t l[16], const secp256k1_scalar_t *a, const secp256k1_scalar_t *b) { +static void secp256k1_scalar_mul_512(uint32_t *l, const secp256k1_scalar_t *a, const secp256k1_scalar_t *b) { /* 96 bit accumulator. */ uint32_t c0 = 0, c1 = 0, c2 = 0; @@ -550,7 +550,7 @@ static void secp256k1_scalar_mul_512(uint32_t l[16], const secp256k1_scalar_t *a l[15] = c0; } -static void secp256k1_scalar_sqr_512(uint32_t l[16], const secp256k1_scalar_t *a) { +static void secp256k1_scalar_sqr_512(uint32_t *l, const secp256k1_scalar_t *a) { /* 96 bit accumulator. */ uint32_t c0 = 0, c1 = 0, c2 = 0;