From 004f415c5d04dd1f616a953eb8ad078a20b72c58 Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Sat, 9 May 2020 13:56:40 -0400 Subject: [PATCH] suppress MS compiler complaint about negating unsigned (closes #330) --- src/util/sobolseq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util/sobolseq.c b/src/util/sobolseq.c index 6626f51..848ff68 100644 --- a/src/util/sobolseq.c +++ b/src/util/sobolseq.c @@ -93,7 +93,12 @@ static unsigned rightzero32(uint32_t n) const uint32_t a = 0x05f66a47; /* magic number, found by brute force */ static const unsigned decode[32] = { 0, 1, 2, 26, 23, 3, 15, 27, 24, 21, 19, 4, 12, 16, 28, 6, 31, 25, 22, 14, 20, 18, 11, 5, 30, 13, 17, 10, 29, 9, 8, 7 }; n = ~n; /* change to rightmost-one problem */ - n = a * (n & (-n)); /* store in n to make sure mult. is 32 bits */ +#ifdef _MSC_VER +#pragma warning(suppress:4146) + n = a * (n & (-n)); /* same as below, but suppress spurious warning/error with MS compiler about negating unsigned int */ +#else + n = a * (n & (-n)); /* store in n to make sure mult. is 32 bits */ +#endif return decode[n >> 27]; #endif } -- 2.26.2.windows.1