enable -Wconversion and -Wsign-conversion on travis
* no changes to the library code * conversion issues in the demo testsuite fixed * add CONV_WARNINGS and enable the warnings only for clang-7 (for now) * disable Wsystem-headers if Wconversion is enabled, to avoid warnings from the system headers
This commit is contained in:
parent
6d092b85a5
commit
e8f56cc4e0
@ -112,7 +112,7 @@ matrix:
|
||||
- gcc-4.9
|
||||
|
||||
# clang for x86-64 architecture (64-bit longs and 64-bit pointers)
|
||||
- env: BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-valgrind'
|
||||
- env: CONV_WARNINGS=1 BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-valgrind'
|
||||
- env: BUILDOPTIONS='--with-cc=clang-6.0 --with-m64 --with-valgrind'
|
||||
addons:
|
||||
apt:
|
||||
|
@ -79,7 +79,7 @@ int mtest_opponent(void)
|
||||
FGETS(buf, 4095, stdin);
|
||||
mp_read_radix(&b, buf, 64);
|
||||
|
||||
mp_mul_2d(&a, rr, &a);
|
||||
mp_mul_2d(&a, (int)rr, &a);
|
||||
a.sign = b.sign;
|
||||
if (mp_cmp(&a, &b) != MP_EQ) {
|
||||
printf("mul2d failed, rr == %u\n", rr);
|
||||
@ -96,7 +96,7 @@ int mtest_opponent(void)
|
||||
FGETS(buf, 4095, stdin);
|
||||
mp_read_radix(&b, buf, 64);
|
||||
|
||||
mp_div_2d(&a, rr, &a, &e);
|
||||
mp_div_2d(&a, (int)rr, &a, &e);
|
||||
a.sign = b.sign;
|
||||
if ((a.used == b.used) && (a.used == 0)) {
|
||||
a.sign = b.sign = MP_ZPOS;
|
||||
@ -128,10 +128,10 @@ int mtest_opponent(void)
|
||||
|
||||
/* test the sign/unsigned storage functions */
|
||||
|
||||
rr = mp_signed_bin_size(&c);
|
||||
rr = (unsigned)mp_signed_bin_size(&c);
|
||||
mp_to_signed_bin(&c, (unsigned char *) cmd);
|
||||
memset(cmd + rr, rand() & 0xFFu, sizeof(cmd) - rr);
|
||||
mp_read_signed_bin(&d, (unsigned char *) cmd, rr);
|
||||
memset(cmd + rr, rand() & 0xFF, sizeof(cmd) - rr);
|
||||
mp_read_signed_bin(&d, (unsigned char *) cmd, (int)rr);
|
||||
if (mp_cmp(&c, &d) != MP_EQ) {
|
||||
printf("mp_signed_bin failure!\n");
|
||||
draw(&c);
|
||||
@ -140,10 +140,10 @@ int mtest_opponent(void)
|
||||
}
|
||||
|
||||
|
||||
rr = mp_unsigned_bin_size(&c);
|
||||
rr = (unsigned)mp_unsigned_bin_size(&c);
|
||||
mp_to_unsigned_bin(&c, (unsigned char *) cmd);
|
||||
memset(cmd + rr, rand() & 0xFFu, sizeof(cmd) - rr);
|
||||
mp_read_unsigned_bin(&d, (unsigned char *) cmd, rr);
|
||||
memset(cmd + rr, rand() & 0xFF, sizeof(cmd) - rr);
|
||||
mp_read_unsigned_bin(&d, (unsigned char *) cmd, (int)rr);
|
||||
if (mp_cmp_mag(&c, &d) != MP_EQ) {
|
||||
printf("mp_unsigned_bin failure!\n");
|
||||
draw(&c);
|
||||
@ -343,7 +343,7 @@ int mtest_opponent(void)
|
||||
sscanf(buf, "%d", &ix);
|
||||
FGETS(buf, 4095, stdin);
|
||||
mp_read_radix(&b, buf, 64);
|
||||
mp_add_d(&a, ix, &c);
|
||||
mp_add_d(&a, (mp_digit)ix, &c);
|
||||
if (mp_cmp(&b, &c) != MP_EQ) {
|
||||
printf("add_d %lu failure\n", add_d_n);
|
||||
draw(&a);
|
||||
@ -360,7 +360,7 @@ int mtest_opponent(void)
|
||||
sscanf(buf, "%d", &ix);
|
||||
FGETS(buf, 4095, stdin);
|
||||
mp_read_radix(&b, buf, 64);
|
||||
mp_sub_d(&a, ix, &c);
|
||||
mp_sub_d(&a, (mp_digit)ix, &c);
|
||||
if (mp_cmp(&b, &c) != MP_EQ) {
|
||||
printf("sub_d %lu failure\n", sub_d_n);
|
||||
draw(&a);
|
||||
|
47
demo/test.c
47
demo/test.c
@ -103,7 +103,7 @@ static int test_mp_jacobi(void)
|
||||
mp_set_int(&b, jacobi[cnt].n);
|
||||
/* only test positive values of a */
|
||||
for (n = -5; n <= 10; ++n) {
|
||||
mp_set_int(&a, abs(n));
|
||||
mp_set_int(&a, (unsigned int)abs(n));
|
||||
should = MP_OKAY;
|
||||
if (n < 0) {
|
||||
mp_neg(&a, &a);
|
||||
@ -221,14 +221,14 @@ static int test_mp_complement(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
int l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&a, labs(l));
|
||||
long l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_long(&a, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&a, &a);
|
||||
mp_complement(&a, &b);
|
||||
|
||||
l = ~l;
|
||||
mp_set_int(&c, labs(l));
|
||||
mp_set_long(&c, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&c, &c);
|
||||
|
||||
@ -255,16 +255,17 @@ static int test_mp_tc_div_2d(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
int l, em;
|
||||
long l;
|
||||
int em;
|
||||
|
||||
l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&a, labs(l));
|
||||
mp_set_long(&a, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&a, &a);
|
||||
|
||||
em = rand() % 32;
|
||||
|
||||
mp_set_int(&d, labs(l >> em));
|
||||
mp_set_long(&d, (unsigned long)labs(l >> em));
|
||||
if ((l >> em) < 0)
|
||||
mp_neg(&d, &d);
|
||||
|
||||
@ -296,16 +297,16 @@ static int test_mp_tc_xor(void)
|
||||
int l, em;
|
||||
|
||||
l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&a, labs(l));
|
||||
mp_set_int(&a, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&a, &a);
|
||||
|
||||
em = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&b, labs(em));
|
||||
mp_set_int(&b, (unsigned long)labs(em));
|
||||
if (em < 0)
|
||||
mp_neg(&b, &b);
|
||||
|
||||
mp_set_int(&d, labs(l ^ em));
|
||||
mp_set_int(&d, (unsigned long)labs(l ^ em));
|
||||
if ((l ^ em) < 0)
|
||||
mp_neg(&d, &d);
|
||||
|
||||
@ -334,19 +335,19 @@ static int test_mp_tc_or(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
int l, em;
|
||||
long l, em;
|
||||
|
||||
l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&a, labs(l));
|
||||
mp_set_long(&a, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&a, &a);
|
||||
|
||||
em = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&b, labs(em));
|
||||
mp_set_long(&b, (unsigned long)labs(em));
|
||||
if (em < 0)
|
||||
mp_neg(&b, &b);
|
||||
|
||||
mp_set_int(&d, labs(l | em));
|
||||
mp_set_long(&d, (unsigned long)labs(l | em));
|
||||
if ((l | em) < 0)
|
||||
mp_neg(&d, &d);
|
||||
|
||||
@ -374,19 +375,19 @@ static int test_mp_tc_and(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < 1000; ++i) {
|
||||
int l, em;
|
||||
long l, em;
|
||||
|
||||
l = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&a, labs(l));
|
||||
mp_set_long(&a, (unsigned long)labs(l));
|
||||
if (l < 0)
|
||||
mp_neg(&a, &a);
|
||||
|
||||
em = (rand() * rand() + 1) * (rand() % 1 ? -1 : 1);
|
||||
mp_set_int(&b, labs(em));
|
||||
mp_set_long(&b, (unsigned long)labs(em));
|
||||
if (em < 0)
|
||||
mp_neg(&b, &b);
|
||||
|
||||
mp_set_int(&d, labs(l & em));
|
||||
mp_set_long(&d, (unsigned long)labs(l & em));
|
||||
if ((l & em) < 0)
|
||||
mp_neg(&d, &d);
|
||||
|
||||
@ -554,9 +555,9 @@ static int test_mp_get_long(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < ((int)(sizeof(unsigned long)*CHAR_BIT) - 1); ++i) {
|
||||
t = (1ULL << (i+1)) - 1;
|
||||
t = (1UL << (i+1)) - 1;
|
||||
if (!t)
|
||||
t = -1;
|
||||
t = ~0UL;
|
||||
printf(" t = 0x%lx i = %d\r", t, i);
|
||||
do {
|
||||
if (mp_set_long(&a, t) != MP_OKAY) {
|
||||
@ -592,7 +593,7 @@ static int test_mp_get_long_long(void)
|
||||
for (i = 0; i < ((int)(sizeof(unsigned long long)*CHAR_BIT) - 1); ++i) {
|
||||
r = (1ULL << (i+1)) - 1;
|
||||
if (!r)
|
||||
r = -1;
|
||||
r = ~0ULL;
|
||||
printf(" r = 0x%llx i = %d\r", r, i);
|
||||
do {
|
||||
if (mp_set_long_long(&a, r) != MP_OKAY) {
|
||||
@ -1345,7 +1346,7 @@ static int test_mp_ilogb(void)
|
||||
}
|
||||
/* radix_size includes the memory needed for '\0', too*/
|
||||
size -= 2;
|
||||
if (mp_cmp_d(&lb, size) != MP_EQ) {
|
||||
if (mp_cmp_d(&lb, (mp_digit)size) != MP_EQ) {
|
||||
goto LBL_ERR;
|
||||
}
|
||||
}
|
||||
@ -1365,7 +1366,7 @@ static int test_mp_ilogb(void)
|
||||
goto LBL_ERR;
|
||||
}
|
||||
size -= 2;
|
||||
if (mp_cmp_d(&lb, size) != MP_EQ) {
|
||||
if (mp_cmp_d(&lb, (mp_digit)size) != MP_EQ) {
|
||||
goto LBL_ERR;
|
||||
}
|
||||
}
|
||||
|
@ -51,10 +51,14 @@ CFLAGS += -I./ -Wall -Wsign-compare -Wextra -Wshadow
|
||||
|
||||
ifndef NO_ADDTL_WARNINGS
|
||||
# additional warnings
|
||||
CFLAGS += -Wsystem-headers
|
||||
CFLAGS += -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align
|
||||
CFLAGS += -Wstrict-prototypes -Wpointer-arith
|
||||
#CFLAGS += -Wconversion -Wsign-conversion
|
||||
endif
|
||||
|
||||
ifdef CONV_WARNINGS
|
||||
CFLAGS += -Wconversion -Wsign-conversion
|
||||
else
|
||||
CFLAGS += -Wsystem-headers
|
||||
endif
|
||||
|
||||
ifdef COMPILE_DEBUG
|
||||
|
Loading…
Reference in New Issue
Block a user