vcpkg/ports/nlopt/0001-suppress-MS-compiler-complaint-about-negating-unsign.patch

32 lines
1.2 KiB
Diff
Raw Normal View History

2020-05-19 02:20:37 +08:00
From 004f415c5d04dd1f616a953eb8ad078a20b72c58 Mon Sep 17 00:00:00 2001
From: "Steven G. Johnson" <stevenj@mit.edu>
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