diff --git a/defs.h b/defs.h index f9af7c89..3ba43c4f 100644 --- a/defs.h +++ b/defs.h @@ -184,6 +184,8 @@ typedef struct PacketProtocolLayer PacketProtocolLayer; #if defined __GNUC__ || defined __clang__ #define NORETURN __attribute__((__noreturn__)) +#elif defined _MSC_VER +#define NORETURN __declspec(noreturn) #else #define NORETURN #endif diff --git a/mpint.c b/mpint.c index 2454a755..39f55063 100644 --- a/mpint.c +++ b/mpint.c @@ -1183,7 +1183,7 @@ static void mp_rshift_safe_in_place(mp_int *r, size_t bits) mp_cond_clear(r, clear); for (unsigned bit = 0; r->nw >> bit; bit++) { - size_t word_offset = 1 << bit; + size_t word_offset = (size_t)1 << bit; BignumInt mask = -(BignumInt)((wordshift >> bit) & 1); for (size_t i = 0; i < r->nw; i++) { BignumInt w = mp_word(r, i + word_offset); @@ -1232,7 +1232,7 @@ static void mp_lshift_safe_in_place(mp_int *r, size_t bits) mp_cond_clear(r, clear); for (unsigned bit = 0; r->nw >> bit; bit++) { - size_t word_offset = 1 << bit; + size_t word_offset = (size_t)1 << bit; BignumInt mask = -(BignumInt)((wordshift >> bit) & 1); for (size_t i = r->nw; i-- > 0 ;) { BignumInt w = mp_word(r, i - word_offset); @@ -2042,7 +2042,7 @@ void mp_divmod_into(mp_int *n, mp_int *d, mp_int *q_out, mp_int *r_out) */ size_t shift_up = 0; for (size_t i = BIGNUM_INT_BITS_BITS; i-- > 0;) { - size_t sl = 1 << i; /* left shift count */ + size_t sl = (size_t)1 << i; /* left shift count */ size_t sr = 64 - sl; /* complementary right-shift count */ /* Should we shift up? */ @@ -2079,7 +2079,7 @@ void mp_divmod_into(mp_int *n, mp_int *d, mp_int *q_out, mp_int *r_out) * instructions, e.g. by splitting up into cases. */ for (size_t i = BIGNUM_INT_BITS_BITS; i-- > 0;) { - size_t sl = 1 << i; /* left shift count */ + size_t sl = (size_t)1 << i; /* left shift count */ size_t sr = 64 - sl; /* complementary right-shift count */ /* Should we shift up? */ diff --git a/sshzlib.c b/sshzlib.c index 015afba1..9ad04ed2 100644 --- a/sshzlib.c +++ b/sshzlib.c @@ -730,7 +730,7 @@ static struct zlib_table *zlib_mkonetab(int *codes, unsigned char *lengths, int pfxmask = (1 << pfxbits) - 1; int nbits, i, j, code; - tab->table = snewn(1 << bits, struct zlib_tableentry); + tab->table = snewn((size_t)1 << bits, struct zlib_tableentry); tab->mask = (1 << bits) - 1; for (code = 0; code <= tab->mask; code++) {