From: Jeremy Harris Date: Wed, 26 Jun 2019 11:39:33 +0000 (+0100) Subject: Compiler quietening X-Git-Url: https://git.exim.org/users/heiko/exim.git/commitdiff_plain/9e905a460429b1b76ffae96ed14647282af7c4c8?hp=98d4eb7a840b78c80cae38aa09e2196d23cad383 Compiler quietening Trying to set an enum (int-sized) with top bit set, needs a cast to (signed) int. Broken-by: ae8f9024d8 --- diff --git a/src/src/macros.h b/src/src/macros.h index 4359e2187..2c7900b83 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -339,7 +339,7 @@ platforms, but this ensures bit vectors always work the same way. */ /* This macro is for single-word bit vectors: the debug selector, and the first word of the log selector. */ -#define BIT(n) (1U << (n)) +#define BIT(n) (1UL << (n)) /* And these are for multi-word vectors. */ #define BITWORD(n) ( (n) / BITWORDSIZE) @@ -370,7 +370,7 @@ Exim's code assumes in a number of places that the debug_selector is one word, and this is exposed in the local_scan ABI. The D_v and D_local_scan bit masks are part of the local_scan API so are #defined in local_scan.h */ -#define DEBUG_BIT(name) Di_##name = IOTA(Di_iota), D_##name = BIT(Di_##name) +#define DEBUG_BIT(name) Di_##name = IOTA(Di_iota), D_##name = (int)BIT(Di_##name) enum { Di_all = -1,